Spring boot是什么?
可以将Spring boot理解为spring项目的脚手架,它会默认配置我们引入的第三方依赖模块(jar),我们无需再用繁琐的xml配置,也可以快速搭建spring项目。Spring boot还内嵌了web容器(默认tomcat),服务器上不再需要单独安装tomcat,只需运行jar包即可。非常适合开发现在流行的微服务,拆分独立业务。
Spring boot优点
- 降低开发成本。大大简化了项目搭建时xml配置。
- 降低运维成本。内嵌了tomcat,不再需要运维再搭建tomcat.
- …
下面我们step by step搭建Spring boot+mybatis+freemarker项目,大家可以参考下前面不用spring boot的文章,对比下我们节约了多少时间。基于Intelij Idea 2017.1。
创建项目。
File
-New
-Project
选择Spring InitializrNext
,输入项目信息:
Next
,选择需要的依赖:Web
,Freemarker
,Mybatis
,Mysql
Next
,可以改也可以不改项目位置,Finish
,创建出一个新项目.配置项目
虽然Spring boot可以帮我们处理大部分配置,但仍有一些是需要我们自己处理的,比如,数据库,mybatis的mapper位置.创建成功后,项目的结构是这样的
所有配置都在SpringBootDemoApplication和application.properties里,没有各种复杂的xml,Freemarker的模板放在resources/templates.
打开application.properties,配置服务器端口(默认8080)和数据库#服务器配置 server.port=8000 #数据库 spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=utf8 spring.datasource.username=root spring.datasource.password=
打开SpringBootDemoApplication配置SqlSessionFactory:
package com.pocketdigi; import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.SqlSessionFactoryBean; import org.mybatis.spring.annotation.MapperScan; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Bean; import org.springframework.core.io.support.PathMatchingResourcePatternResolver; import javax.sql.DataSource; @SpringBootApplication @MapperScan("com.pocketdigi.dao.mapper") public class SpringBootDemoApplication { public static void main(String[] args) { SpringApplication.run(SpringBootDemoApplication.class, args); } @Bean @Autowired public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws Exception { final SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean(); sqlSessionFactoryBean.setDataSource(dataSource); sqlSessionFactoryBean.setTypeAliasesPackage("com.pocketdigi.dao.po"); PathMatchingResourcePatternResolver pathMatchingResourcePatternResolver = new PathMatchingResourcePatternResolver(); sqlSessionFactoryBean.setMapperLocations(pathMatchingResourcePatternResolver.getResources("classpath:mybatis_mapper/*.xml")); return sqlSessionFactoryBean.getObject(); } }
类上加上
@MapperScan
注解,增加创建SqlSessionFactory
的方法此时其实还没有
com.pocketdigi.dao.mapper
和com.pocketdigi.dao.po
包,这两个包是分别用来放mybatis generator生成的mapper接口文件和po,example类的,mybatis_mapper在resources目录下,放mybatis generator生成的mapper xml文件。请在生成后放到对应目录,怎么生成就不介绍了。开始编写业务逻辑
创建service,controller包,开始写业务逻辑吧
完成时,整体项目结构大概是这样的:BeanConverter是一个将po转成model的工具类
运行
正常情况下,intellij idea已经自动帮我们创建好了运行配置,只要点击工具栏上的运行按钮就可以了。打包
mvn package
,在target目录生成spring-boot-demo-0.0.1-SNAPSHOT.jar
,运行java -jar spring-boot-demo-0.0.1-SNAPSHOT.jar
即可启动服务