springboot如今火爆的程度大有将传统的ssm比下去的势头,究其原因,还是springboot被越来越多的公司使用,其简洁的配置,优秀的封装性,便捷的全注解开发,同时由于和越来越多的其他框架进行了无缝对接和支持,使得springboot被众多的开发者接收和使用。
个人认为springboot其中一个最吸引人的地方在于它的配置相比传统的ssm,ssh等框架上,省去了大量的而且容易出错xml配置,虽然其底层原理大体相同,但确实在项目框架搭建之初能节省大量人力和时间啊,下面将对平时使用最多的ssm框架,用springboot的方式进行整合,以备参考和使用。
项目结构很简单,分为4个包,entity,dao,service,controller,另外一个启动类app
根据个人习惯不同,可以对自己的包结构命名,有一点是,application.properties必须放置在resources目录下,springboot的app启动后会去读取该配置文件。
1)pom.xml文件中主要的依赖包如下:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.1.RELEASE</version>
<relativePath />
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- mybatis 与 spring boot 2.x的整合包 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<!--mysql JDBC驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.39</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--OKHttp Http 客户端 -->
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>3.10.0</version>
</dependency>
<!-- GSON的序列化与反序列化工具包 -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.3</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-logging-juli</artifactId>
<version>8.0.33</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
使用springboot最好把版本号添加上去,不同的版本最依赖的jar包不相同,容易引起项目跑不起来等各种奇葩的问题,建议使用1.5.9或2.x的,前者是发行生产版的,后者是比较新的版本,兼容性较好,不用的包不要过多依赖
2)有人喜欢用yml的配置文件的形式,依据个人习惯而定,application.properties的配置文件如下:
#端口号可以自己指定
server.port=8082
#数据库连接,还可以指定编码格式
spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=root
#mybatis配置,这是个人实际工作中的配置习惯,有人喜欢在app的启动类上面添加mapperLocations的扫描包注解,
#但是那样对新手容易忘记,下面的方式可以较好的实现与数据库表到实体类之间的驼峰转换
mybatis.type-aliases-package=com.acong.entity
mybatis.mapper-locations=classpath:mybatis/mapper/*.xml
#配置log日志
logging.level.com.acong.dao= debug
logging.file=d:/logs/bsbdj.log
#将themilef的默认缓存禁用,热加载生效
spring.thymeleaf.cache=false
#启用分页插件,酌情添加
pagehelper.helper-dialect=mysql
pagehelper.reasonable=true
3)在entity包下新建一个实体bean,TUser,与数据库的表t_user对应,代码如下,
public class TUser {
private int id;
private String loginacct;
private String username;
private String userpswd;
private String email;
private String createtime;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getLoginacct() {
return loginacct;
}
public void setLoginacct(String loginacct) {
this.loginacct = loginacct;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getUserpswd() {
return userpswd;
}
public void setUserpswd(String userpswd) {
this.userpswd = userpswd;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getCreatetime() {
return createtime;
}
public void setCreatetime(String createtime) {
this.createtime = createtime;
}
}
4)建一个接口,如果采用app添加注解扫描包的形式,此处的@Mapper注解可以省去,但如果是配置文件中指定的话,注解在此处必须加上,否则启动报错
@Mapper
public interface UserDao {
List<TUser> queryAll();
}
5)创建一个service,如果你喜欢使用面向接口的方式编程,也可以先定接口,再进行实现即可,依据个人习惯而定,同样,此处需要添加注解@Service,
@Service
public class UserService {
@Autowired
private UserDao userDao;
public List<TUser> queryAll() {
return userDao.queryAll();
}
}
6)创建一个controller,作为测试使用,一般来说,springboot框架搭建完毕,需要做3方面的测试,框架本身测试,只需要一个controller,写个测试controller,然后浏览器调用,其次是整合mybatis的数据库测试,需要一步步调用测试,第三个是整合了其他的前端数据渲染模板,如jsp,freemaker,此处只做数据库的测试,
@Controller
@RequestMapping("/test")
public class TestController {
@Autowired
private UserService userService;
@RequestMapping(value="/testData")
@ResponseBody
public List<TUser> testData(){
List<TUser> datas = userService.queryAll();
return datas;
}
@RequestMapping(value="/toIndex")
@ResponseBody
public Map<String, Object> toIndex(){
Map<String, Object> map = new HashMap<>();
map.put("name", "jike");
map.put("age", 12);
return map;
}
@RequestMapping("/toFirst")
public String toFirst(){
return "first";
}
}
7)xml的配置,此处不再对立面的配置文件作介绍,相信用过的都明白,写个简单的sql语句进行测试,
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.acong.dao.UserDao">
<select id="queryAll" resultType="com.acong.entity.TUser">
select * from t_user
</select>
</mapper>
8)以上整合完毕,启动app启动类的main函数:
@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
9)启动完成,控制台没有报错的话,浏览器输入,
http://localhost:8082/test/testData
浏览器将返回一个json的对象列表,因为controller中添加了@responsebody的注解会自动解析成json形式
通过以上整合是不是发现springboot整合起来特别简单,没错,如果后期你的项目还需要其他的框架如,rabbitmq,redis等其他的配置,只需要在application.properties中添加即可,就算你是新手,也可以很快的搭建一个可以使用的和ssm具备同样效果的框架。
以上只是springboot整合的基础配置,还有许多的其他功能,各位使用的童鞋可以整合完毕后慢慢琢磨哈!!!拿去不谢!!!