@Configuration(proxyBeanMethods = true)
@Configuration(proxyBeanMethods = false)
配置类编写
//告诉SpringBoot这是一个配置类
@Configuration
public class MyConfig {
@Bean
public User user01(){
User zhangsan = new User("zhangsan", 18);
zhangsan.setPet(pet01());
return zhangsan;
}
@Bean
public Pet pet01(){
Pet tom = new Pet("tom");
return tom;
}
}
@Import({User.class, DBHelper.class})
@Configuration(proxyBeanMethods = false) //告诉SpringBoot这是一个配置类 == 配置文件
public class MyConfig {
}
给容器中自动创建出这两个类型的组件、默认组件的名字就是全类名
条件装配:满足Conditional指定的条件,则进行组件注入
由于User依赖Pet,所以当pet组件不存在时,user组件也没有意义,所以使用条件装配@ConditionalOnBean
//存在pet01组件则进行组件注入
@ConditionalOnBean(name = "pet01")
@Bean
public User user01(){
User zhangsan = new User("zhangsan", 18);
zhangsan.setPet(pet01());
return zhangsan;
}
作用:已经在xml中配置了组件,让配置文件中的内容生效
@ImportResource("classpath:beans.xml")
public class MyConfig {}
类似于jdbc的xml中数据绑定,可以使用@ConfigurationProperties
步骤:
@EnableConfigurationProperties(Car.class)
//1、开启Car配置绑定功能
//2、把这个Car这个组件自动注册到容器中
public class MyConfig {
}
mycar.name=BYD
mycar.price=1000
prefix表示xml文件中的前缀
@ConfigurationProperties(prefix = "mycar")
public class Car {
@Component
@ConfigurationProperties(prefix = "mycar")
public class Car {
@SpringBootApplication = @SpringBootConfiguration+@EnableAutoConfiguration+@ComponentScan
@Configuration。代表当前是一个配置类
指定扫描哪些,Spring注解;
@AutoConfigurationPackage
@Import(AutoConfigurationImportSelector.class)
public @interface EnableAutoConfiguration {}
文件里面写死了spring-boot一启动就要给容器中加载的所有配置类
虽然127个自动配置启动时都加载了(xxxAutoConfiguration),但会按照条件装配规则@Conditional,进行按需装配
给容器中加入了文件上传解析器;
@Bean
@ConditionalOnBean(MultipartResolver.class) //容器中有这个类型组件
@ConditionalOnMissingBean(name = DispatcherServlet.MULTIPART_RESOLVER_BEAN_NAME) //容器中没有这个名字 multipartResolver 的组件
public MultipartResolver multipartResolver(MultipartResolver resolver) {
//给@Bean标注的方法传入了对象参数,这个参数的值就会从容器中找。
//SpringMVC multipartResolver。防止有些用户配置的文件上传解析器不符合规范
// Detect if the user has created a MultipartResolver but named it incorrectly
return resolver;
}
将用户的不规范的命名进行重命名
顺序:
首先加载自动配置类——>按条件生效的自动配置类—–>寻找配置文件——->根据配置文件的数据为容器添加组件(用户优先)
==================导入依赖===============
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
=================添加注解=================
@NoArgsConstructor//无参构造
@AllArgsConstructor//全参数构造
@Data//引入get,set,toString方法
public class User {
private String name;
private int age;
private Pet pet;
}
@Slf4j
public class HelloController {
@RequestMa
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
项目或者页面修改以后:Ctrl+F9;
会自动进行依赖导入,自动创建项目结构,自动配好主配置类
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/115190.html原文链接:https://javaforall.cn