springboot可以帮你简化spring的搭建,并且快速创建一个spring的应用程序。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
2.springboot的特点 (1)可以创建独立的Spring应用程序,并且基于其Maven或Gradle插件,可以创建可执行的JARs和WARs;(2)内嵌Tomcat或Jetty等Servlet容器;
(3)提供自动配置的“starter”项目对象模型(POMS)以简化Maven配置;
(4)尽可能自动配置Spring容器;
(5)提供准备好的特性,如指标、健康检查和外部化配置;
(6)绝对没有代码生成,不需要XML配置。 3.创建springboot工程 1.创建的前提 1.JDK必须为1.8以上 2.spring的jar必须5.0以上 3.maven必须3.3以上 2.创建springboot工程
4.springboot的使用 1.创建一个包
2.创建一个类并写入代码
@RestController
public class HelloController {
@GetMapping("hello")
public Map hello(){
//创建一个map对象
Map map=new HashMap<>();
//我那个map中添加资源
map.put("name","张三");
map.put("age",18);
return map;
}
}
3.运行主方法---默认springboot扫描的包为主启动类所在的包以及子包。
4.在浏览器输入网址
5.springboot的pom文件
6.springboot的配置文件 1.application.properties属性文件4.0.0 org.springframework.boot spring-boot-starter-parent2.3.12.RELEASE com.guan job07210.0.1-SNAPSHOT job0721 Demo project for Spring Boot 1.8 org.springframework.boot spring-boot-starter-weborg.projectlombok lomboktrue org.springframework.boot spring-boot-starter-testtest
#修改端口号 server.port=1234 #路径 server.servlet.context-path=/a2.application.yml文件
#修改端口号 server: port: 8081
如果两个配置文件的格式不一样,如果同时存在,而且有些内容一样。按照properties的优先级高。如果有些不一样,两个配置文件不一样的会合并在一起。
注意:配置文件的名字以application 开头,不可以改变
7.读取springboot配置文件的内容 1.通过@PropertiesConfiguration--放在类上注意:
配置文件里面的属性一定要和类中的属性一致,使用yml文件的时候,属性与值之间有空格,值不要加双引号,会报错
student:
name: 李四
age: 18
hobby:
-music
-eat
2.@Value注解。@Value 只能放在我们的类属性上。而且它只能读取基本类型和字符串类型。
//只能读取基本类型和字符串类型
@Value("${student.name}")
private String studentName;
//自动注入--spring帮你注入
8.profiles文件的介绍
思考: 我们在实际开发中,环境有哪些?
开发环境---->测试环境---->线上环境 由于环境的不同,那么就会有不同的配置内容。
难道我们不断的修改配置内容。----不会
实际工作中,针对不同的环境配置不同的配置文件,然后再总的配置文件中激活相应的配置文件。
#引用配置文件---application不用写,写后面的即可 spring.profiles.active=dev
9.springboot注册web三大组件 1.什么是web的三个组件? 1.Servlet 1.Filter 3.Linstener监听器。 2.为什么要注册这三个组件呢?
因为后面springboot有可能要集成第三方框架,而第三方框架的底层可能就依赖于过滤器或者servlet.
3.如何注册 1.servlet注册早期
Servlet类
/
springboot注册servlet
package com.guan.job0721.config;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.servlet.Servlet;
@Configuration //该注解为配置类相当于xml
public class Config {
//理解为配置文件中
@Bean
//ServletRegistrationBean--Servlet 注册 Bean
public ServletRegistrationBean servletRegistrationBean(){
//创建一个Servlet注册器.
ServletRegistrationBean servletServletRegistrationBean=new ServletRegistrationBean<>();
//设置servlet的名字
servletServletRegistrationBean.setName("servlet");
//设置servlet
servletServletRegistrationBean.setServlet(new com.guan.job0721.servlet.Servlet());
//设置路径
servletServletRegistrationBean.addUrlMappings("/servlet");
return servletServletRegistrationBean;
}
}
2.Filter
早期
springboot注册Filter
Filter类
package com.guan.job0721.filter;
import javax.servlet.*;
import java.io.IOException;
public class Filter implements javax.servlet.Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
//放行
filterChain.doFilter(servletRequest, servletResponse);
System.out.println("拦截器");
}
@Override
public void destroy() {
}
}
package com.guan.job0721.config;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.servlet.Filter;
import javax.servlet.Servlet;
@Configuration //该注解为配置类相当于xml
public class Config {
//理解为配置文件中
@Bean
public FilterRegistrationBean filterRegistrationBean(){
//创建一个Filter注册器.
FilterRegistrationBean filterRegistrationBean=new FilterRegistrationBean<>();
//设置名字
filterRegistrationBean.setName("filter");
//设置类
filterRegistrationBean.setFilter(new com.guan.job0721.filter.Filter());
//设置拦截的路径
filterRegistrationBean.addUrlPatterns("/*");
return filterRegistrationBean;
}
}
10.springboot自动装配原理
1.什么是自动装配原理
无需手动加载某些配置,而由Springboot自动加载进来。
springboot包扫描的原理--为什么包扫描时,扫描的为主类所在的包以及子包。
@SpringBootApplication(scanBasePackages = {"路径"})这个是指定扫描的包,指定那个,扫描那个
当主函数启动时,会加载@SpringBootApplication这个注解,这个注解是一个复合注解,而且@SpringBootApplication里面有一个@EnableAutoConfiguration注解,这个注解是开启自动配置,@EnableAutoConfiguration里面有一个@AutoConfigurationPackage注解,这个注解是自动扫描包,还有一个AutoConfigurationImportSelector.class,这个类帮我们加载一些自动类,而这些自动配置类会帮我们完成想对应的自动装配功能
11.springboot整合数据源 1.什么是数据源数据源: 指的是数据源。即是: springboot框架连接数据库。
2.如何整合数据源 1.加入jdbc的依赖
repMaven.org.springframework.boot
spring-boot-starter-jdbc
2.3.12.RELEASE
mysql
mysql-connector-java
2.配置数据源的信息--在application.properties
#配置数据源信息 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.data-username=root spring.datasource.password=grt081141 spring.datasource.url=jdbc:mysql://localhost:3306/five?serverTimezone=Asia/Shanghai3.测试
//加载主启动类的放射类
@SpringBootTest(classes = DemoApplication.class)
class DemoApplicationTests {
@Autowired //Autowired自动注入dataSource对象
//在springboot配置文件中,是以dataSource开头的
private DataSource dataSource;
@Test
void contextLoads() {
System.out.println(dataSource);
}
}
}
上面默认这个数据源使用的连接池Hikari。如果不想使用默认的连接池,我们可以引入第三方的连接池。
3.集成druid数据源 1.加入依赖
repMaven.com.alibaba
druid-spring-boot-starter
1.2.8
2.配置数据
spring.datasource.druid.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.druid.username=root spring.datasource.druid.password=grt081141 spring.datasource.druid.url=jdbc:mysql://localhost:3306/five?serverTimezone=Asia/Shanghai #不写的话,使用默认配置的 #初始化的个数 spring.datasource.druid.initial-size=3 #最大活跃数 spring.datasource.druid.max-active=10 #最大等待时间 spring.datasource.druid.max-wait=3000 # 最小的闲置个数 spring.datasource.druid.min-idle=53.测试
//加载主启动类的放射类
@SpringBootTest(classes = DemoApplication.class)
class DemoApplicationTests {
@Autowired //Autowired自动注入dataSource对象
//在springboot配置文件中,是以dataSource开头的
private DataSource dataSource;
@Test
void contextLoads() {
System.out.println(dataSource);
}
}
12.springboot整合mybatis
1.加入依赖
org.mybatis.spring.boot
mybatis-spring-boot-starter
2.2.2
2.创建实体类
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Emp {
private int id;
private String name;
private String address;
}
3.创建dao接口
public interface EmpDao {
//查询全部
public List selectAll();
}
4.创建mapper
5.指定映射文件的路径
#指定映射文件的路径 mybatis.mapper-locations=classpath:mapper/*.xml6.为接口生成代理实现类 1. 在dao接口类上加上@Mapper这个注解代表为此类生成代理类 2.为指定的包下的接口生成代理实现类 @MapperScan(basePackages = "路径") 7.测试
@Autowired
private EmpDao empDao;
@Test
public void select(){
List emps = empDao.selectAll();
for (Emp emp:emps) {
System.out.println(emp);
}
}
13.springboot整合PageHelper分页插件
1.加入依赖
com.github.pagehelper
pagehelper-spring-boot-starter
1.4.2
2.测试
@Autowired
private EmpDao empDao;
@Test
public void select(){
//getPageNum--当前页码 getPage--每页显示多少条
PageHelper.startPage(1,3);
List emps = empDao.selectAll();
//将查询到封装到pageInfo中
PageInfo pageInfo=new PageInfo<>(emps);
System.out.println("当前页码:"+pageInfo.getPageNum());
System.out.println("当前总页码:"+pageInfo.getPages());
System.out.println("总条数:"+pageInfo.getTotal());
System.out.println("当前页码的记录:"+pageInfo.getList());
}
14.springboot整合swagger2
1.什么是swagger
它是一个接口文档----用来前后端分离的一款文档,说明功能,以及请求的路径,请求的方式,请求的参数说明,响应数据说明等
2.如何整合swagger 1.引入swagger依赖
com.spring4all
swagger-spring-boot-starter
1.9.1.RELEASE
com.github.xiaoymin
swagger-bootstrap-ui
1.7.8
2.创建swagger配置类
@Configuration //该注解为配置类相当于xml
public class SwaggerConfig {
@Bean
//swagger中所有的功能都封装到了Docket类中
public Docket docket(){
Docket docket=new Docket(DocumentationType.SWAGGER_2);
return docket;
}
}
3.开启swagger注解
在主函数上@EnableSwagger2 //开启swagger注解
4.使用swagger注解 5.访问方式1.http://localhost:8080/swagger-ui.html
2.http://localhost:8080/doc.html



