当前位置:网站首页>@Detailed introduction of configuration annotation
@Detailed introduction of configuration annotation
2022-07-07 23:44:00 【TPH-BETTER】
from https://www.cnblogs.com/init-qiancheng/p/14623522.html
@Target({
ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Component
public @interface Configuration {
@AliasFor(
annotation = Component.class
)
String value() default "";
boolean proxyBeanMethods() default true;
}
According to the definition of this annotation , The annotation is first a component , So it will be @SpringBootApplication Annotation scan ( The premise of scanning is that the annotation must be in the same package or sub package as the startup class ) There is an attribute in this annotation proxyBeanMethods, The default value for this property is true, This attribute can be divided into two modes
- Full Pattern ( Is the default ):proxyBeanMethods = true;
- Lite Pattern :proxyBeanMethods = false;
Full Patterns and Lite The difference between patterns
Use Full Pattern , This configuration class is represented , You can solve the dependencies between components , He will first check whether there are instances of components in the container , If it exists, it will be used directly , If it doesn't exist, it will be created ;
If it is Lite Pattern , There will be no proxy class , Each call will be executed once ,SpringBoot Will skip the steps of searching in the container ;
When to use Full and Lite
When there is no component dependency, it is used Lite, This will make the program start faster ;
When there is component dependency, it is used Full, Is the default ;
MyConfig.java
/** * 1、 The configuration class uses @Bean Label the method to register the component to the container , The default is also single instance * 2、 The configuration class itself is also a component * 3、proxyBeanMethods: agent bean Methods * Full(proxyBeanMethods = true)、【 Make sure that each @Bean Method is called many times and the returned component is single instance 】 * Lite(proxyBeanMethods = false)【 Every @Bean Method is called many times and the returned component is newly created 】 * Component dependencies must use Full Mode default . Other defaults are Lite Pattern */
@Configuration(proxyBeanMethods = false)// tell SpringBoot This is a configuration class == The configuration file
public class MyConfig {
/** * Full: No matter how many times you call the component registration method in the configuration class, you get the single instance object in the previous registration container * * @return */
@Bean// Add components to the container . Using the method name as the name of the component id. The return type is the component type . The value returned , Is an instance of a component in a container
public People people() {
return new People(1, " Transference ", dog());
}
@Bean
public Dog dog() {
return new Dog(1, " Hee hee ");
}
}
Start class
@SpringBootApplication
public class QianchengApplication {
public static void main(String[] args) {
ApplicationContext context = SpringApplication.run(QianchengApplication.class, args);
/** * Use Full Mode will output * [email protected]7aae97b * true */
/** * Use Late Mode output * [email protected] * false */
MyConfig bean = context.getBean(MyConfig.class);
System.out.println(bean);
People people = context.getBean("people", People.class);
Dog dog1 = context.getBean("dog", Dog.class);
System.out.println(people.getDog() == dog1);
}
}
边栏推荐
- SLAM面试总结
- Interface
- 【7.4】25. K 个一组翻转链表
- 企业应用需求导向开发之人力部门,员工考勤记录和实发工资业务程序案例
- postgres timestamp转人眼时间字符串或者毫秒值
- Ora-02437 failed to verify the primary key violation
- 【7.4】25. Turn over the linked list in groups of K
- Anxinco esp32-a1s development board is adapted to Baidu dueros routine to realize online voice function
- Alibaba cloud MySQL cannot connect
- The file format and extension of XLS do not match
猜你喜欢
C - linear table
Aitm3.0005 smoke toxicity test
B_ QuRT_ User_ Guide(38)
[stm32+esp8266 connects to Tencent cloud IOT development platform 3] stm32+esp8266-01s dynamically registers devices on Tencent cloud (at instruction mode) -- with source code
Anxin can internally test offline voice module vb-01 to communicate with esp-c3-12f
SAP HR奖罚信息导出
SAP HR labor contract information 0016
Take you hand in hand to build Eureka client with idea
How to change the formula picture in the paper directly into the formula in word
Chisel tutorial - 04 Control flow in chisel
随机推荐
ASP. Net core middleware request processing pipeline
Access database query all tables SQL
Pigsty:开箱即用的数据库发行版
Pycharm basic settings latest version 2022
C - Fibonacci sequence again
SAP HR family member information
HB 5469 combustion test method for non-metallic materials in civil aircraft cabin
解析token的网址
【LeetCode】20、有效的括号
Oracle statistics by time
[STM32 + esp-12s connect Tencent cloud IOT development platform 1] creation of cloud platform and burning of at firmware
Wechat applet development beginner 1
AITM3.0005 烟雾毒性测试
redis缓存工具类,值得拥有~
Anxinco EC series modules are connected to the multi protocol access products of onenet Internet of things open platform
Interface
Right click the idea file to create new. There is no solution to create new servlet
How to change the formula picture in the paper directly into the formula in word
Idea automatically generates serialVersionUID
C language greedy snake