当前位置:网站首页>@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);
}
}
边栏推荐
- 8.31 Tencent interview
- 【LeetCode】20、有效的括号
- AITM3.0005 烟雾毒性测试
- 【实验分享】通过Console口登录到Cisco设备
- 【7.5】15. 三数之和
- [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
- Boost regex library source code compilation
- P1308 [noip2011 popularity group] count the number of words
- C - minute number V3
- JNI uses asan to check memory leaks
猜你喜欢
An example analysis of MP4 file format parsing
0-1 knapsack problem
0-1背包问题
Arbre binaire équilibré [Arbre AVL] - Insérer et supprimer
2022 certified surveyors are still at a loss when preparing for the exam? Teach you how to take the exam hand in hand?
MySQL Architecture
Live server usage
Learn about scratch
The file format and extension of XLS do not match
Chisel tutorial - 02 Chisel environment configuration and implementation and testing of the first chisel module
随机推荐
Ora-02437 failed to verify the primary key violation
[stm32+esp8266 connect Tencent cloud IOT development platform 2] stm32+esp8266-01s connect Tencent cloud
Get started with mongodb
通达信买基金安全吗?
C - linear table
【汇总】看过的一些Panel与视频
Chisel tutorial - 00 Ex.scala metals plug-in (vs Code), SBT and coursier exchange endogenous
SAP HR reward and punishment information export
【LeetCode】20、有效的括号
ASP. Net query implementation
FFA与ICGA造影
95.(cesium篇)cesium动态单体化-3D建筑物(楼栋)
激光slam学习(2D/3D、偏实践)
Codeworks 5 questions per day (average 1500) - day 8
Summary of SQL single table query 2020.7.27
神奇快速幂
C language greedy snake
Right click the idea file to create new. There is no solution to create new servlet
Installing gradle
Pigsty:开箱即用的数据库发行版