方法级别注解,表示一个方法实例化、配置或者初始化一个Spring IoC容器管理的新对象。
使用方法:将@Bean声明在方法上面返回对象(默认方法名就是spring容器中的实例名)
1. 先创建一个普通的类,不带注解;
2. 创建一个注入的类(带注解),注入的类中使用@Bean注入前面普通类;
3.1 使用applicationContext.getBean获取spring容器中的bean;
main方法中使用;
3.3 在其他控制器中使用已经注入的@Bean;
1) 先创建一个上下文菜单的静态类:
package com.cx.common; import org.springframework.context.ApplicationContext; public class SpringContextUtil { public static void setApplicationContext(ApplicationContext context) { public static Object getBean(String beanId) { |
2) 在main函数中设置静态类的属性;
3) 其他任意控制器使用:
4) 运行效果:
附注@Bean的源码:【方法级的注解】
@Target({ElementType.METHOD, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Bean {
@AliasFor("name")
String[] value() default {};
@AliasFor("value")
String[] name() default {};
/** @deprecated */
@Deprecated
Autowire autowire() default Autowire.NO;
boolean autowireCandidate() default true;
String initMethod() default "";
String destroyMethod() default "(inferred)";
}