springboot-ck

springboot优点

  1. springboot starter 将常用的依赖进行了整合,将其合并到一个依赖中。
  2. 使编码变得简单,采用javaconfig的形式对spring进行配置,并且提供了大量的注解。
  3. 自动配置,利用spring条件配置的支持,合理推测应用所需要使用的bean,并自动化配置他们。
  4. 使部署变得简单,内置了三种servlet容器,tomcat,jetty,undertow,只需要java环境就可以运行,可以达成一个jar包。
  5. 微服务框架,可以部署分布式架构。

启动

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

创建可执行jar包

  <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

在这里插入图片描述

默认扫描器basepackage

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

进入注解
@SpringBootApplication
在这里插入图片描述
进入注解@EnableAutoConfiguration
在这里插入图片描述
再进入
在这里插入图片描述
进入Registrar
在这里插入图片描述
内部内在方法registerBeanDefinitions 进行BasePacjage信息注册
参数metadata为启动类信息
在这里插入图片描述

在这里插入图片描述
第一次进不包含bean 所以进else
收集类信息
类名BasePackages
beanDefinition.getConstructorArgumentValues().addIndexedArgumentValue(0, packageNames);
设置类属性packageNames 为启动类所在的包
BEAN=org.springframework.boot.autoconfigure.AutoConfigurationPackages
总的来说就是创建一个AutoConfigurationPackage的bean对象,属性为basePackages数组存启动类所在的包。

热启动

导入依赖

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

在这里插入图片描述
选择自动编译
当修改文件时 会自动重启
在这里插入图片描述
baseclassloder 扫描第三方jar文件
restartclassloder扫描工程中文件,当代码修改时重新启动
排除restartclassloder扫描的包
在配置文件中配置

在这里插入图片描述

配置文件

在这里插入图片描述
配置对应的类
在这里插入图片描述
在类中EmbeddedWebServerFactoryCustomizerAutoConfiguration
在这里插入图片描述
在这里插入图片描述

YML配置文件

		 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
        </dependency>

导入以上依赖可以再yml文件获得提示
根据实体类把yml配置导入到类属性中
在这里插入图片描述

必须有两个注解
@ConfigurationProperties(“user”)
@Component

然后在application.yml中进行配置
在这里插入图片描述
以上会进行提示
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

@EnableConfigurationProperties 通过构造器注入

@Data
@ConstructorBinding
@ConfigurationProperties("user")
public class User {
    private String userName;
    private Integer age;
    private Book book;

    public User(String userName, Integer age,Book book) {
        this.userName = userName;
        this.age = age;
        this.book=book;
    }

    @Data
    public static class Book
    {
        private String bookName;

        public Book(String bookName) {
            this.bookName = bookName;
        }
    }
}

不再需要@@Component注解
在使用类中加入@EnableConfigurationProperties(User.class) 导入User.class

@RestController
@EnableConfigurationProperties(User.class)
public class MyContoller {

    @Autowired
    private User user;
    @RequestMapping("user")
    public User getUser()
    {
        return user;
    }
}

在这里插入图片描述
springboot 2.3.1配置类不需要注解@Configuration

配置类

使用注解@bean与@ConfigurationProperties(“user”)

在这里插入图片描述
@ConfigurationProperties(“user”)
也可以作用在方法上对对象属性注入

@Validated

先导入依赖

     <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>1.0.19.9-jre14</version>
     </dependency>

在这里插入图片描述
使用yml对类属性注入时进行属性值得校验。

@Value

针对yml文件对类属性绑定

@Data
@Component
@Validated
public class Student {

    @Value("${stu.name}")
    private String name;
    @NotNull
    @Value("${stu.sex}")
    private String sex;

    @Value("#{1*8}")
    private String age;

}

支持SEL表达式,支持validated校验,不支持数组,集合类型

Profile

在这里插入图片描述
配置多个profiel 用—隔开
spring.profiles.active=pro 来决定激活哪一个
也可以在命令行进行激活
在这里插入图片描述
使用-D指定

也可以使用多文件的形式
在这里插入图片描述
直接使用文件后缀指定

SPI可插拔

在这里插入图片描述
使用ServiceLoader类,可以调用实现PayService接口类大pay()方法。而不用直接调用实现类。
需要在对象实现工程中配置实现类的路径
在这里插入图片描述
在这里插入图片描述
实现可插拔

数据源配置

导入依赖

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

在这里插入图片描述
在yml进行配置数据源。type指定那种数据源
原理

在自动配置类中DataSourceAutoConfiguration
在这里插入图片描述
配置几种数据源
点开类DataSourceConfiguration
在这里插入图片描述
有自动导入数据源的配置
运行程序
在这里插入图片描述
导入成功
导入druid数据源
导入依赖

	    <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.2.1</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>

yml配置

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mybatis?serverTimezone=GMT%2B8
    username: root
    password: root
    driver-class-name: com.mysql.cj.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource

点开类DruidDataSource 查看可配置连接池属性
在这里插入图片描述
进行配置新建配置类
在这里插入图片描述
在这里插入图片描述
配置类返回 新的druid对象 使用注解 @ConfigurationProperties(prefix = “spring.datasource”)
可以把yml中InitialSize的配置注入到新的数据源对象中 放到IOC容器中。

整合mybatis(注解)

导入依赖

<dependencies>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.3</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.2.1</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
    </dependencies>

yml配置
和以前一样
编写mapper
在这里插入图片描述
调用mapper
在这里插入图片描述
自定义mybatis里配置 与单独mybatis里xml配置一致
先找到mybatis的自动配置类
在这里插入图片描述
打开自动配置类MybatisAutoConfiguration
在这里插入图片描述
打开类ConfigurationCustomizer
在这里插入图片描述

打开Configuration
在这里插入图片描述

可以看mybatis的配置
例如红框中的mapUnderscoreToCamelCase 可以把例如数据库中自动create_date 对应实体类自动createDate对应起来
可以自己新建配置类对mybatis自动配置
在这里插入图片描述

整合mybatis(配置)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值