54.SpringBoot

本文介绍了SpringBoot的基本概念,集成方式,项目结构,自动配置原理,以及多环境配置和热部署。重点讲解了核心包引入,web启动,配置文件管理和MyBatis集成,以及开发规范和常见配置参数加载方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SpringBoot

是Spring社区退出的一个集成性的框架,它并没有做新的功能的处理,它更多的是用了一种全新的方式来集成Spring以前的相关内容,以及集成Spring以外的组件,这样让我们在构建项目的时候会非常的方便快捷,而且它还内置了服务器,比如tomcat,这样我们在部署项目的时候可以不用在去配置外部tomcat,它提供了一键式的部署方式,所以项目页不需要打成war包,直接通过jar包main函数的方式可以直接启动

构建方式

  1. 可以通过官网来自动构建
  2. 可以自己编写maven项目导入核心包构建
  3. 可以通过工具插件构建

项目结构

就是一个标准的Maven项目

在resource下面有两个可选目录:

  1. static

    可以存放一些静态的资源文件,比如html、js、css、图片

  2. templates

    存放一些模板文件

Springboot的包管理

Springboot所有的包的名字都一个规律 spring-boot-start-xxx

Springboot主动集成的jar包都会有自动的版本匹配,我们不需要去手动规定版本号,

如果是外界集成Springboot的包就需要手动规定版本号

基础导包

<!-- Spring的核心包 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
</dependency>
<!-- Web包(MVC)该包其实已经包含了核心包,所以可以去掉上面的包-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

Springboot(web)的启动

只需要一个main函数去执行相关的初始化方法就会自动打包部署以及启动tomcat

@SpringBootApplication
public class Woniu63BootTestApplication {

	public static void main(String[] args) {
		SpringApplication.run(Woniu63BootTestApplication.class, args);
	}

}

配置

Springboot提供了两种方式的配置

  1. properties(属性文件)

    server.port=8088
    server.servlet.context-path= /woniu63
    
  2. yml(yaml) 对象型配置

    #注意:冒号的后面需要有一个空格
    server: 
      port: 8088
      servlet:
        context-path: /woniu63
    

一般来说,我们会选择yaml方式,因为更能够体现对象的层次感

Springboot集成mybatis

  1. 导包

    <!-- myabits跟boot集成包-->
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>2.2.0</version>
    </dependency>
    <!-- mysql驱动包 -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <scope>runtime</scope>
    </dependency>
    
  2. 需要通过注解指定mapper接口的位置

    @SpringBootApplication
    //指定mapper接口位置
    @MapperScan("com.woniu.mapper")
    public class Woniu63BootTestApplication {
    
    	public static void main(String[] args) {
    		SpringApplication.run(Woniu63BootTestApplication.class, args);
    	}
    
    }
    
  3. 配置数据库连接属性

    spring:
      datasource:
        url: jdbc:mysql:///task?charsetEncoding=utf-       
                                  8&useSSL=false&ServerTimezone=Asia/shanghai
        username: root
        password: 123321
        driver-class-name: com.mysql.cj.jdbc.Driver
    
  4. 配置mybatis xml文件所在的地址

    mybatis:
      mapper-locations: classpath*:mapper/**/*.xml
    
  5. 后面的所有mybatis操作跟以前一样

日志输出

springboot默认的日志输出是slf4j + logback

可以直接通过lombock调出日志的API

//该注解会自动生成一个log对象再当前的对象里面使用来输出日志
@Slf4j
public class TestController {
}
@GetMapping("/save")
public String saveUser(UserParam up) {
    log.info("======进入新增用户方法: 参数是: {}======",up);
    Long start = System.currentTimeMillis();
    int i = 1/0;
    System.out.println("新增用户");
    log.info("方法结束: , 执行时长是: {}",System.currentTimeMillis() - start);
    return "ok";

}

注意:在出现异常的时候是一定需要输出日志

@ExceptionHandler(Exception.class)
public String woniuException(Exception e) {
    log.error("出现异常: ",e);
    return e.getMessage();
}

可以改变mybatis mapper的接口日志级别,设置debug来输出sql信息

logging:
  level: 
    com.woniu.mapper: debug

简单的开发规范

1,每个层次的对象需要独立(数据库(entity)、参数(param)、返回(dto))

2,所有的业务面向异常编程(自定义异常,每一个异常信息包括编号跟消息)

Springboot的配置参数加载方式

两种方式可以加载配置参数

  1. @Value注解

    @Value("${server.port}")
    private String port;
    
  2. 以对象封装的形式

    @Data
    @Component
    /*
    是规定当前类对象的属性从配置参数里面自动加载,且加载的配置参数前缀是‘apidoc’
    前缀后面的属性名字是根据类里面属性名称来拼接的,例如第一个加载的属性就是:
    apidoc.basePackage
    */
    @ConfigurationProperties(prefix = "apidoc")
    public class ApiProperties {
    	
    	private String basePackage;
    	
    	private String title;
    	
    	private String desc;
    	
        /*
        该属性是一个对象,所以在加载的时候是有层次递进的,例如下面的对象里面的第一个属性是name
        对应加载配置文件里面的就是:apidoc.oathen.name
        */
    	private Oathen oathen;
    	
    
    }
    
    @Data
    public class Oathen {
    	
    	private String name;
    	
    	private String email;
    	
    	private String home;
    
    }
    
    apidoc: 
      basePackage: com.woniu.controller
      title: 说明文档
      desc: woniu测试项目的接口说明
      oathen: 
        name: admin
        email: adsfads@woniu.com
        home: http://xxxx 
    

    Springboot自动配置原理

    在启动类上面有一个注解@SpringBootApplication,该注解上面有一个用来做自动配置加载规定的注解:

    @EnableAutoConfiguration,该注解引入了一个自动配置加载的加载器AutoConfigurationImportSelector

    ,该加载器对象会去 加载外部的一些配置信息,它回去加载外部jar包里面META-INF文件夹里面的

    spring.factories文件,该文件配置了相关需要加载的类,这样就可以把外部jar包的一些对象加载到当前的boot的IOC容器当中进行集成。

    多环境与热部署

    热部署

    1.首先保证springBoot的版本是1.3之后
    2.在maven中引入依赖

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <optional>true</optional>
    </dependency>
    

    3.开启热部署

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <fork>true</fork>
                </configuration>
            </plugin>
        </plugins>
    </build>
    
    多环境配置

    1.首先讲一下命名规则:
    在Spring Boot中多环境配置文件名需要满足application-{profile}.properties的格式,其中{profile}对应你的环境标识,比如:

    application-dev.properties:开发环境
    application-test.properties:测试环境
    application-prod.properties:生产环境
    这些文件的存放在与application.properties同级目录中即可
    

    2.如何启用环境配置:

    只需要在application.properties文件中加入spring.profiles.active=dev就会加载application-dev.properties配置文件内容
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值