Spring-Boot
1、什么是Spring-Boot
SpringBoot基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置,来进一步简化了Spring应用的整体搭建和开发过程。另外SpringBoot通过集成大量的框架使得依赖包得版本冲突,以及引用得不稳定性等问题得到了很好得解决
2、Spring-Boot的优点
(1)可以创建独立得Spring应用程序,并且基于Maven或Gradle插件,可以创建可执行的JARs和WARs;
(2)内嵌Tomcat或Jetty等Servlet容器;
(3)提供自动配置得starter项目对象模型(POMS)以简化Maven配置;
(4)尽可能自动配置Spring容器
(5)提供准备好的特性,如指标、健康检查、外部化配置;
(6)绝对没有代码生成,不需要XML配置。
3、快速搭建Spring-Boot工程 --必须联网
4、Maven搭建Spring-Boot搭建工程
(1)创建一个mevan工程
(2)pom中添加相关依赖
<?xml version="1.0" encoding="UTF-8"?>
<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>
<!--继承父工程-->
<parent>
<artifactId>spring-boot-starter-parent</artifactId>
<groupId>org.springframework.boot</groupId>
<version>2.7.5</version>
</parent>
<groupId>com.ykq</groupId>
<artifactId>qy168-springboot02</artifactId>
<version>1.0-SNAPSHOT</version>
<!--引入web启动依赖-->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
</project>
(3)创建一个Spring-Boot配置文件--application
(4)创建主启动类
@SpringBootApplication
public class SpringBootApp {
public static void main(String[] args) {
SpringApplication.run(SpringBootApp.class,args);
}
}
5、java读取Spring-Boot配置文件中得内容
Spring-Boot提供了两种格式得配置文件,内容格式不同。
(1)第一种:属性文件 后缀:properties
(2)第二种:yaml文件 后缀:yml
如果properties配置文件和yml配置文件内容相同;会先以properties配置文件为主,如果上面配置文件得内容不同:都能用。
6、Spring-Boot中提供了两种方式读取:
第一种:@Value
@Value("${student.name}")
public String name;
@Value("${student.age}")
public String age;
@GetMapping("/student")
public String index2(){
return "名字是:"+name+"年龄是:"+age;
}
第二种:@ConfigurationProperties
测试:
@Autowired
private Student student;
@GetMapping("getStudent")
public Student getStudent(){
return student;
}
实体类:
@Data
@Component//有容器帮你创建Student类对象
@ConfigurationProperties(prefix = "student")
public class Student {
private String name;
private Integer age;
}
7、Spring-Boot注册web组件
serivet:
(1)定义一个Serivet类
(2)重写doGet和doPost方法
(3)把定义的serlvet注册到web.xml文件
@Configuration//等价于spring配置文件
public class MyConfiguration {
@Bean//相当于spring配置文件中<bean class=""> 把该方法返回的对象交于spring容器来管理了
public ServletRegistrationBean<Servlet> registrationBean(){
ServletRegistrationBean<Servlet> servletServletRegistrationBean = new ServletRegistrationBean<>();
servletServletRegistrationBean.setServlet(new MySerivet());
servletServletRegistrationBean.setName("my");
servletServletRegistrationBean.addUrlMappings("/my");
return servletServletRegistrationBean;
}
filter:
(1) 定义一个filter类
(2)dofilter方法
(3)把自定义得过滤器注册到web.xml
@Bean
public FilterRegistrationBean<Filter> filterFilterRegistrationBean(){
FilterRegistrationBean<Filter> filterFilterRegistrationBean = new FilterRegistrationBean<>();
filterFilterRegistrationBean.setFilter(new MyFilter());
filterFilterRegistrationBean.setName("myFilter");
filterFilterRegistrationBean.addUrlPatterns("/*");
return filterFilterRegistrationBean;
}
public class MyFilter implements Filter {
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("经过了过滤器");
//代码放行
filterChain.doFilter(servletRequest,servletResponse);
}
测试: