springBoot 自动装配,SpringBoot自动配置,SpringBoot自动加载

 ================================

©Copyright 蕃薯耀 2021-12-22

​​​蕃薯耀的博客_CSDN博客

一、定义配置类


import java.util.Map;

import org.springframework.boot.context.properties.ConfigurationProperties;

@ConfigurationProperties(prefix = "lqy.java.auto", ignoreUnknownFields = true)
public class MyProperties {

	private Integer id;
	private String name;
	private Map<String, String> map;
	private String from;
	private boolean enable;
	
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Map<String, String> getMap() {
		return map;
	}
	public void setMap(Map<String, String> map) {
		this.map = map;
	}
	
	
	public String getFrom() {
		return from;
	}
	public void setFrom(String from) {
		this.from = from;
	}
	
	
	public boolean isEnable() {
		return enable;
	}
	public void setEnable(boolean enable) {
		this.enable = enable;
	}
	@Override
	public String toString() {
		return "MyProperties [id=" + id + ", name=" + name + ", map=" + map + ", from=" + from + "]";
	}
	
	
	
	
}

二、定义application.properties文件

#lqy.java.auto.enable=false
lqy.java.auto.id=10
lqy.java.auto.name=张三aa
lqy.java.auto.map.a=a-一
lqy.java.auto.map.b=b-二

三、定义自动配置类:MyPropertiesAutoConfiguration

需要引入MyProperties:

@EnableConfigurationProperties(value = MyProperties.class)


import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import lqy.java.validation.hibernate.bean.User;

@Configuration(proxyBeanMethods = false)
@EnableConfigurationProperties(value = MyProperties.class)
@ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.SERVLET)
@ConditionalOnClass(User.class)//User类在类路径中才生效
@ConditionalOnProperty(prefix = "lqy.java.auto", value="enable", havingValue = "true", matchIfMissing = true)
public class MyPropertiesAutoConfiguration {

	@Bean
	public User getUser(MyProperties myProperties) {
		
		System.out.println("myProperties = " + myProperties);
		
		User u = new User();
		u.setId(myProperties.getId());
		u.setName(myProperties.getName());
		
		System.out.println("User u = " + u);
		
		return u;
	}
}

四、增加自动加载配置文件:spring.factories

在src/main/resources/META-INF/的路径增加spring.factories文件,没有META-INF则新建

src/main/resources/META-INF/spring.factories

spring.factories文件的内容:

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
lqy.java.validation.hibernate.auto.MyPropertiesAutoConfiguration

反斜杠(\)表示接下一行,即可以换行

五、springboot @ConfigurationProperties 中文乱码解决方案:

springboot @ConfigurationProperties 中文乱码解决方案见:springboot @ConfigurationProperties 中文乱码解决方案_蕃薯耀的博客-CSDN博客================================©Copyright 蕃薯耀2021-12-22​​​​​蕃薯耀的博客_CSDN博客一、springboot @ConfigurationProperties 中文乱码问题1、application.properties文件:lqy.java.auto.id=10lqy.java.auto.name=张三aalqy.java.auto.map.a=a-一lqy.java.auto.map.b=b-二2、...https://blog.csdn.net/w995223851/article/details/122077774?spm=1001.2014.3001.5501

(时间宝贵,分享不易,捐赠回馈,^_^)

================================

©Copyright 蕃薯耀 2021-12-22

​​​​​蕃薯耀的博客_CSDN博客


版权声明:本文为w995223851原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。