springboot定义多套环境配置

网友投稿 129 2024-01-19


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、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来读取自定义属性。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:springboot注入(Springboot注入对象为空)
下一篇:安卓手机型号修改?
相关文章

 发表评论

暂时没有评论,来抢沙发吧~