configuration注解红
时间: 2023-10-13 21:07:01 浏览: 56
引用和提到了关于`@Configuration`注解报红的问题。当`proxyBeanMethods`设置为`false`时,在使用`@Bean`注解的方法直接调用时,IDEA会报红。报红的内容是:Method annotated with @Bean is called directly in a @Configuration where proxyBeanMethods set to false. Set proxyBeanMethods to true or use dependency injection。
这个报红的原因是,当`proxyBeanMethods`设置为`false`时,`@Bean`注解的方法将不会生成一个代理对象,而是直接调用方法。而`@Configuration`注解的类代表了一个配置类,它会被Spring容器扫描并解析,生成对应的Bean对象。因此,直接调用`@Bean`注解的方法会违反了依赖注入的原则。
解决这个报红的方法有两种:
1. 将`proxyBeanMethods`设置为`true`,这样生成的Bean对象将会是一个代理对象,而不是直接调用方法。这样可以避免报红。
2. 使用依赖注入来获取`@Bean`注解的方法返回的对象,而不是直接调用方法。
引用展示了一个`Pet`类的例子,这个类被用作`User`类的`pet`属性的类型。根据这个例子,我们可以了解到`Pet`类是一个简单的Java Bean类,它包含了一个`breed`属性。
综上所述,当我们在`@Configuration`注解的类中使用`@Bean`注解的方法时,如果`proxyBeanMethods`设置为`false`,IDEA会报红。可以将`proxyBeanMethods`设置为`true`或使用依赖注入来解决这个问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [Configuration注解的proxyBeanMethods属性学习](https://blog.csdn.net/hhhjjj201830341/article/details/123441496)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]