傳統 SpringMVC 專案需要大量 XML 配置、手動搭建 Tomcat/Jetty,前後端協作時環境一致性難以保證。Spring Boot 以「約定優於配置」實現免 XML、內嵌容器、一鍵啟動;MyBatis 則提供靈活的 SQL 定制化與輕量級 ORM,避免 Hibernate 過度規範資料庫結構的侷限。兩者結合,打造出開箱即用、分層清晰的現代 Web 專案骨架。

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</groupId>
<version>1.2.5.RELEASE</version>
</parent>
<dependencies>
<!-- Web + 內嵌 Tomcat -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>
<!-- Thymeleaf 模板引擎 -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency>
<!-- JDBC + 連線池 -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency>
<dependency><groupId>org.apache.tomcat</groupId><artifactId>tomcat-jdbc</artifactId></dependency>
<!-- MyBatis 整合 -->
<dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>1.2.2</version></dependency>
<dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.2.8</version></dependency>
<!-- MySQL 驅動 -->
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency>
<!-- JSON / Swagger -->
<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.1.43</version></dependency>
<dependency><groupId>com.mangofactory</groupId><artifactId>swagger-springmvc</artifactId><version>0.9.5</version></dependency>
</dependencies>
@SpringBootApplication
@MapperScan("cn.no7player.mapper")
public class Application {
@Bean
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource dataSource() {
return new org.apache.tomcat.jdbc.pool.DataSource();
}
@Bean
public SqlSessionFactory sqlSessionFactoryBean() throws Exception {
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
bean.setDataSource(dataSource());
bean.setMapperLocations(new PathMatchingResourcePatternResolver()
.getResources("classpath:/mybatis/*.xml"));
return bean.getObject();
}
@Bean
public PlatformTransactionManager transactionManager() {
return new DataSourceTransactionManager(dataSource());
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=gbk spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.jdbc.Driver
// 1. 視圖模板
@Controller
public class HelloController {
@RequestMapping("/hello")
public String greeting(@RequestParam(defaultValue="World") String name, Model model) {
model.addAttribute("name", name);
return "hello"; // 對應 templates/hello.html
}
}
// 2. JSON 回應
@Controller
public class UserController {
@Autowired UserService userService;
@RequestMapping("/getUserInfo")
@ResponseBody
public User getUserInfo() { return userService.getUserInfo(); }
}
// 3. RESTful + Swagger
@RestController
@RequestMapping("/users")
public class SwaggerController {
@ApiOperation("獲取所有用戶")
@GetMapping
public List<User> getUsers() { ... }
@ApiOperation("根據名稱獲取用戶")
@GetMapping("/{name}")
public User getUserById(@PathVariable String name) { ... }
}
<!-- UserMapper.xml -->
<mapper namespace="cn.no7player.mapper.UserMapper">
<select id="findUserInfo" resultType="cn.no7player.model.User">
select name, age, password from user;
</select>
</mapper>
public interface UserMapper {
User findUserInfo();
}

SpringBoot Start Successhttps://localhost:8080/hello?name=7playerhttps://localhost:8080/getUserInfohttps://localhost:8080/swagger/index.html

這個專案骨架適用於中小型專案快速起步,亦可作為微服務單體模組的基礎模板。實際生產環境建議補充:配置檔加密、多環境 Profile、健康檢查端點、分散式追蹤等企業級能力。