Spring Boot简介
Spring Boot是由Pivotal团队提供的框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。
该框架使用了特定的方式(继承starter,约定优先于配置)来进行配置,从而使开发人员不再需要定义样板化的配置。
Spring Boot是为简化Spring项目配置而生
Spring Boot特性
①内置tomcat,构建的fat Jar包通过Java -jar就可以直接运行。
②热部署
③yml替代xml配置
④集成第三方框架:可以结合Spring Boot与Spring Cloud和Docker技术来构建微服务并部署到云端。通过一个脚本就可以实现配置与部署,很适合云端部署,并且自动扩展也更容易
简单而言,即Spring Boot使编码更简单,使配置更简单,使部署更简单,使监控更简单!
无需手动管理依赖jar包的版本
Spring boot通过spring boot starter项目管理其提供的所有依赖的版本,当升级spring boot时,这些依赖的版本也会随之升级。个人无需指定版本号。
但是也可以自定义版本号覆盖springboot的默认值。每个版本的boot都有对应的base spring version,不建议明确地指定spring版本。
例如,使用maven时,只需简单的在pom中包含spring-boot-starter-web即引入了Spring MVC和Tomcat的依赖。
下面是Spring Boot在 org.springframework.boot 组下提供的一些Starters:
Springboot其本质还是spring相关的框架,不过为开发者提供了一系列默认的starter,大大降低了spring项目开发的配置工作,所谓约定大于配置。
Spring boot Mybatis
环境要求
开发环境JDK 1.8
项目管理工具( Maven )
开发工具(Eclipse)
创建Maven项目
导入Spring Boot依赖
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>springboot_parent</groupId>
<artifactId>springboot_parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<module>springboot_hello</module>
</modules>
<!-- 引入springboot -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.10.RELEASE</version>
</parent>
<!-- JDK版本 -->
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!-- 添加spring-boot-starter-web依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- mysql 数据库驱动. -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--必须有才能编译jsp -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<!-- 热部署 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
<!-- junit测试包 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
<!-- spring-boot mybatis依赖 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.0</version>
</dependency>
<!-- spring boot mybatis 分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.2</version>
</dependency>
</dependencies>
<!-- 可执行jar包 -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
创建启动类App.java
@SpringBootApplication
@MapperScan("springboot_mybatis.mapper")
public class App {
//启动
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
配置文件application.yml
spring:
mvc:
view:
prefix: /WEB-INF/view/
suffix: .jsp
datasource:
driverClassName: com.mysql.jdbc.Driver
url : jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8
username : root
password : 000000
# Mybatis配置
mybatis:
typeAliasesPackage: springboot_mybatis.domain
mapperLocations: classpath:springboot_mybatis/mapper/*.xml
configLocation: classpath:mybatisConfig.xml
#日志
logging:
level:
springboot_mybatis: DEBUG
server:
port: 8080
写一个测试domain
package springboot_mybatis.domain;
public class User {
private Long id;
private String name;
private String pwd;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", pwd=" + pwd + "]";
}
}
Mapper
@Mapper
public interface UserMapper {
//查询全部
@Select("select * from t_user")
List<User> queryAll();
User queryOne();
}
JUnit测试
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes=App.class)
public class SpringBootTest2 {
@Autowired
private IUserService userService;
@Test
public void testName() throws Exception {
List<User> queryAll = userService.QueryAll();
System.out.println(queryAll.size());
}
}