栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Springboot框架

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Springboot框架

1.什么是Springboot框架

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文件


    4.0.0
    
    
        org.springframework.boot
        spring-boot-starter-parent
        2.3.12.RELEASE
         
    
    
    com.guan
    job0721
    0.0.1-SNAPSHOT
    job0721
    Demo project for Spring Boot
    
        
        1.8
    
    
        
        
            org.springframework.boot
            spring-boot-starter-web
        

        
            org.projectlombok
            lombok
            true
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
    


 6.springboot的配置文件         1.application.properties属性文件
#修改端口号
server.port=1234
#路径
server.servlet.context-path=/a
        2.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/Shanghai
                3.测试
//加载主启动类的放射类
@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=5
                3.测试
//加载主启动类的放射类
@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/*.xml
        6.为接口生成代理实现类                 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

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1024461.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号