SpringBoot_底层注解
作者:互联网
1.Configuration
2.Import
3.Conditional条件转配
4.ImportResource
5.ConfigurationProperties
文章目录
1.Configuration
这个注解标识在类上面表示这个类是配置类
配置类 = 配置文件
和Spring一样的注解,都是可以将配置文件用注解来使用
@Configuration
@ImportResource("classpath:bean1.xml")
//@ConditionalOnBean(name = "user01")//有user01这个bean才注册下面的
//@ConditionalOnMissingBean(name = "user01")//除了user01这个bean没有的话才注册
public class MainConfig {
@ConditionalOnBean(name = "tom")//有tom这个bean才注册下面的方法
@Bean("user01")
public User user(){
return new User("Zzz", 33);
}
}
比如这个MainConfig.java类中就是表示的有@Configuration注解,表示这个是一个配置类。
下面的@Bean相当于在容器中注册了一个user01的组件。
配置类相当于配置文件bean.xml
2.Import
@Import注解显而易见就是在外部引入bean,和Spring注解一样
给容器中自动配置组件
说明在容器中注册了Person的组件
3.Conditional条件转配
通过某个条件来自动装配
这个注解可以标注在方法和类上
比如
@Import({User.class, Person.class})
@Configuration
@ImportResource("classpath:bean1.xml")
//@ConditionalOnBean(name = "user01")//有user01这个bean才注册下面的
//@ConditionalOnMissingBean(name = "user01")//除了user01这个bean没有的话才注册
public class MainConfig {
@ConditionalOnBean(name = "tom")//有tom这个bean才注册下面的方法
@Bean("user01")
public User user(){
return new User("Zzz", 33);
}
}
表示如果有tom这个bean的组件才装配下面的user的组件
4.ImportResource
引入外部文件比如bean1.xml
在bean1.xml中有注册组件
bean1.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean class="com.atguigu.boot.bean.User" id="user">
<property name="name" value="Zzz"></property>
</bean>
</beans>
5.ConfigurationProperties
5.1 @Component + @ConfigurationProperties
javabean上面添加的注解
@Component
@ConfigurationProperties(prefix = "person")
public class Person {
private String username;
private String password;
public Person() {
}
public Person(String username, String password) {
this.username = username;
this.password = password;
}
@Override
public String toString() {
return "Person{" +
"username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
@Autowired
Person person;
@RequestMapping("/person")
public Person person(){
return person;
}
5.2 @EnableConfigurationProperties + @ConfigurationProperties
EnableConfigurationProperties 作用:
1.开启Person属性配置功能
2.把Person这个组件自动注册到容器中
标签:username,SpringBoot,Person,bean,注解,password,public,user01,底层 来源: https://blog.csdn.net/qq_43141726/article/details/117284823