什么是SpringBoot?
Spring Boot可以轻松创建独立的,生产级的基于Spring的应用程序,您可以“运行”。我们对Spring平台和第三方库有自己的看法,所以您可以尽量少用大惊小怪。大多数Spring Boot应用程序只需要很少的Spring配置。
为什么要SpringBoot?
- 创建独立的Spring应用程序
- 直接嵌入Tomcat,Jetty或Undertow(无需部署WAR文件)
- 提供自己的’入门’POM来简化你的Maven配置
- 尽可能自动配置Spring
- 提供生产就绪功能,如指标,运行状况检查和外部配置
- 绝对不会生成代码,并且不需要XML配置
<!--more-->
如何使用SpringBoot?
SpringBoot 配置起来简单的实在不能再简单了
首先 加入SpringBoot依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.0.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependencies>
<!--web项目必须引用的依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!--去除logback依赖包 不然和log4j2冲突-->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<dependencies>
<!-- spring热部署 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>springloaded</artifactId>
<version>1.2.6.RELEASE</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
创建启动类
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
其实到此位置SpringBoot 基本配置已经结束了SpringBoot自带Spring MVC功能我们不需要配置
但是我们还需要配置一个DAO层 SpringBoot 推荐使用内置的JAP 但是我还是喜欢用MyBatis
两者正好是不同的风格 JAP 有点像Hibernate 需要ORM映射 不需要写SQL MyBatis则需要手动写SQL
不管是用什么 首先配置数据源
创建一个叫Appilcation.properties文件 在这里配置一些基本配置 当然Spring建议使用yml格式的配置文件
我们就创建一个 Application.yml的文件
配置数据源
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/test
data-username: root
data-password: yh
#-----------以下内容非必填---------------
#下面为连接池的补充设置,应用到上面所有数据源中
dbcp:
#初始化大小
initial-size: 5
#最小
min-idle: 5
#最大
max-active: 20
#配置获取连接等待超时的时间
max-wait: 6000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
time-between-eviction-runs-millis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
min-evictable-idle-time-millis: 30000
validation-query: select 1 from dual
test-while-idle: true
test-on-borrow: false
test-on-return: false
#打开PSCache,并且制定每个连接上PCCache的大小
pool-prepared-statements: true
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
filters: stat,wall,log4j
# 通过connectProperties属性来打开mergeSql功能;慢SQL记录
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
# 合并多个DruidDataSource的监控数据
useGlobalDataSourceStat: true
#---------------------------------------
首先使用JAP 查询数据库
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
加入依赖
jpa:
hibernate:
#每次启动创建一个新的表,如果有删掉
#ddl-auto: create
#如果没有创建,有的话不删除
ddl-auto: update
show-sql: true
在Application.yml文件加入
好了,JAP配置完成了如何使用?
public interface HibernateDao extends JpaRepository<HibernateCreateTest,Integer>{
}
@Autowired
UserDao userDao;
/**
* 增删改查.....
*/
@GetMapping("/userByid")
public String selUserById(Integer id){
return userDao.selUserById(id).getAccount();
}
配置MyBatis
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>
Application.yml加入
mybatis:
#mapper文件的位置
mapper-locations: classpath:Mybatis-sql/*.xml
#为实体对象所在的包,跟数据库表一一对应
type-aliases-package: springbootdemo.entity
configuration:
log-impl: org.apache.ibatis.logging.log4j2.Log4j2Impl
其他的都和以前Mybatis使用方法一致
如果你定一个Controller访问JSP 发现访问不到,也许不是你代码出问题了,是SpringBoot默认不支持Jsp建议使用模板
<!--thymeleaf-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
thymeleaf是SpringBoot 推荐使用模板其中之一 当然还有很多 这里就不一一介绍了
@Controller
@RequestMapping("/user")
public class UserController {
Log log = LogFactory.getLog(getClass());
@RequestMapping("/testJsp")
public String testJsp(Model model){
model.addAttribute("name", "Dear");
return "index";
}
}
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Spring Boot and Thymeleaf example</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>
<body>
<h3>Spring Boot and Thymeleaf</h3>
<p th:text="'Hello!, ' + ${name} + '!'" >3333</p>
</body>
</html>
当然如果你执意要使用JSP当然也是可以的
加入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>
<!-- to enable use of jsp for view -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
配置文件
spring:
mvc:
view:
prefix:
suffix:
SpringBoot还有一些 常用的其他配置
server:
port: 8089
context-path: /demo
定义tomcat端口和访问路径