Spring-Boot

发布时间 2023-08-18 10:15:42作者: PHOEDE

  1、什么是Spring-Boot

        SpringBoot基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置,来进一步简化了Spring应用的整体搭建和开发过程。另外SpringBoot通过集成大量的框架使得依赖包得版本冲突,以及引用得不稳定性等问题得到了很好得解决

  2、Spring-Boot的优点

        (1)可以创建独立得Spring应用程序,并且基于MavenGradle插件,可以创建可执行的JARsWARs

        (2)内嵌TomcatJettyServlet容器;

        (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);
    }

    测试: