springboot定义多套环境配置

springboot自动配置原理

Spring Boot 的自动装配原理主要依赖于 Spring 框架提供的 @Configuration、@ComponentScan 和 @Conditional 等注解,配合 Spring Boot 提供的 @EnableAutoConfiguration 和 spring.factories 配置文件,来实现自动装配的功能。

默认的byName自动装配:当一个bean的属性名称与其他bean的id相同时,Spring会自动将该bean引用到这些同名的bean中去。

SpringBoot的自动装配是指:SpringBoot会自动将一些配置类的bean注册到ioc容器,我们可以在需要的地方使用@Autowired或@Resource等注解来使用它。

springboot定义多套环境配置  第1张

springboot、mybatis-plus、Druid多数据源环境搭建

1、步骤一:我们先需要引入maven配置,版本可自选。dynamic-datasource-spring-boot-starter 是一个基于springboot的快速集成多数据源的启动器。步骤二:多数据源配置,需要注意的后面都有写注释。

2、本场 Chat 将使用 Spring Boot、Mybatis 搭建一个简易的 Java 服务,是一个不需要修改配置文件、不重启服务、动态切换数据源的项目,适合需要需要多数据源(经常变化的数据源,数据源 3 个以上等)的 Java 开发人员查阅。

3、使用MyBatisPlus可以为我们减少很多很多的代码,不过需要编写实体类,有失必有得。配置动态数据源 dynamic-datasource-spring-boot-starter 是一个基于springboot的快速集成多数据源的启动器。

4、查看生成的文件;启动springboot的application启动类:会报错,提示找不到mapper文件,我们需要在springboot启动类上添加扫描mapper的注解:UserController.java中新增接口:postman测试:没问题。

5、这里要排除DruidDataSourceAutoConfigure ,因为DruidDataSourceAutoConfigure会注入一个DataSourceWrapper,其会在原生的spring.datasource下找url,username,password等。而我们动态数据源的配置路径是变化的。

6、多数据源情况下, MyBatis 中的关键组件 SqlSessionFactory 和 SqlSessionTemplate 也需要单独配置,我们需要为两个数据源分别配置一套组件。

SpringBoot配置

SpringBoot中的配置文件主要有三种格式,properties、yaml、和xml方式。

maven中配置springboot的相关依赖和热启动的方法如下:在maven中配置springboot的相关依赖及热启动,需要在pom.xml文件中添加springboot的相关依赖。在maven插件中添加spring-boot-maven-plugin插件,用于启动springboot应用。

对SpringBoot来说,虽然application.yml配置文件更加常见,但是其实默认配置文件是application.properties,当然其格式可以是properties也可以是yaml格式;除此之外,其配置文件也可以是bootstrap.yml。

SpringBoot的自定义配置

1、springboot自动配置原理是基于条件判断来配置Bean。pring Boot的自动配置原理是基于Spring框架的条件化配置(Conditional Configuration)机制实现的。

2、对SpringBoot来说,虽然application.yml配置文件更加常见,但是其实默认配置文件是application.properties,当然其格式可以是properties也可以是yaml格式;除此之外,其配置文件也可以是bootstrap.yml。

3、应用程序只需要在maven中引入starter依赖,SpringBoot就能自动扫描到要加载的信息并启动相应的默认配置。用一句话描述,就是springboot的场景启动器。

4、接下来,将针对SpringBoot的自定义配置文件及其加载方式进行讲解。对于这种加载自定义配置文件的需求,可以使用@PropertySource注解结合@Configuration注解配置类的方式来实现。

5、springboot自定义属性文件通过value注解引入,和@autowired不同的是,它是由ConfigurationClassPostProcessor这个BeanDefinitionRegistryPostProcessor来处理,属性文件的读取和注入是在BeanDefinition级别,对象实例化之前。

6、显然,前者支持松绑定的特性更强大,所以在实际开发中建议使用@ConfigurationProperties来读取自定义属性。

以上内容为新媒号(sinv.com.cn)为大家提供!新媒号,坚持更新大家所需的互联网后端知识。希望您喜欢!

版权申明:新媒号所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流,不声明或保证其内容的正确性,如发现本站有涉嫌抄袭侵权/违法违规的内容。请发送邮件至 k2#88.com(替换@) 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023-09-23 15:35
下一篇 2023-09-23 15:35

相关推荐

发表回复

登录后才能评论