近些年来由于微服务架构越来越受欢迎,基于JVM平台的”微框架”也如雨后春笋般涌现:小清新的如Spark Framework
, 重量级的如Spring Boot
。Spring Boot相比其它微框架来说,有以下几点优势:
首选我们的web项目需要从spring-boot-starter-parent
父项目中继承而来:
<parent>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-parentartifactId>
<version>1.3.3.RELEASEversion>
parent>
由于我们要使用Log4j2代替Spring Boot默认的Logback, 因此需要在依赖中声明去掉starter-web
中的starter-logging
:
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-loggingartifactId>
exclusion>
exclusions>
dependency>
然后添加log4j2
:
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-log4j2artifactId>
dependency>
最后,依次添加mysql-jdbc-driver
, mybatis
, tomcat-jdbc
, starter-jdbc
即可:
<dependency>
<groupId>mysqlgroupId>
<artifactId>mysql-connector-javaartifactId>
<version>5.1.6version>
dependency>
<dependency>
<groupId>org.mybatis.spring.bootgroupId>
<artifactId>mybatis-spring-boot-starterartifactId>
<version>1.0.0version>
dependency>
<dependency>
<groupId>org.apache.tomcatgroupId>
<artifactId>tomcat-jdbcartifactId>
<version>8.0.23version>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-jdbcartifactId>
dependency>
数据源配置也相当easy, 在resources
目录下新建application.properties
, 添加:
# database
spring.datasource.url=jdbc:mysql://localhost/database
spring.datasource.username=用户名
spring.datasource.password=密码
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
同时也可以指定Mybatis配置文件位置:
# mybatis
mybatis.config = classpath:mybatis/mybatis-config.xml
最后,一个集成SpringMVC, DAO(Mybatis), Service, Log4j2的项目骨架就搭建好了:
@RestController
@EnableAutoConfiguration
@ComponentScan(basePackages = "cn.fh.springboot")
public class Boot {
private static Logger log = LoggerFactory.getLogger(Boot.class);
@Autowired
private UserService userService;
@RequestMapping(value = "/", method = RequestMethod.GET)
public String home() {
log.info("home method invoked!");
userService.find(1);
return "works";
}
public static void main(String[] args) {
SpringApplication.run(Boot.class, args);
}
}
Spring Boot项目的所有配置都可以写在application.properties
文件中,也可以通过@Configuration
类。不过配置信息个人更倾向于写在外部文件中。applicatoin.properties
完整配置项可以查阅:Spring Boot Reference
PS: 如果你用的是Intellij Idea
,那么在配置myBatis时可能会遇到找不到mapper.xml文件的问题。问题的原因是,如果你将mapper文件与类文件一起放到包中,即在src/main/java
目录下,那么idea默认是不会将*.xml
文件写到最终的Jar包中的。解决方案是向pom.xml
的build
结点中添加:
<resources>
<resource>
<directory>src/main/javadirectory>
<includes>
<include>**/*.xmlinclude>
includes>
resource>
resources>