(1)默认情况下 Bean 名称就是方法名,比如下面 Bean 名称便是 myBean: @BeanpublicMyBean myBean() {returnnewMyBean(); } (2)@Bean 注解支持设置别名。比如下面除了主名称 myBean 外,还有个别名 myBean1(两个都可以使用) @Bean("myBean1")publicMyBean myBean() {returnnewMyBean(); } (3)@Bean ...
@Configuration@PropertySource("classpath:/com/acme/app.properties")publicclassAppConfig{// 也是注入方式的一种,同@Autowired@InjectEnvironment env;@BeanpublicMyBeanmyBean(){returnnewMyBean(env.getProperty("bean.name")); } } 使用@Value注释 可以使用@Value注释将其他文件中的值注入到@Configuration类中: ...
@Testpublic void testAnnotationConfig(){ ApplicationContext context = new AnnotationConfigApplicationContext(PersonConfig.class); Person person = context.getBean(Person.class); System.out.println(person); //按照类型找到对应的bean名称数组 String[] names = context.getBeanNamesForType(Person.class); Arr...
publicMyBeanmyBean{ returnnewMyBean; } } 上述AppConfig 加入@Configuration 注解,表明这就是一个配置类。有一个myBean的方法,返回一个MyBean的实例,并用@Bean 进行注释,表明这个方法是需要被Spring进行管理的bean。@Bean 如果不指定名称的话,默认使用myBean名称,也就是小写的名称。 通过启动一个AnnotationConfigA...
println(person6);// ---测试@Configuration配置类注入的Bean end---// 查看IOC容器中已经有的Bean名称String[]beanNames=annotationConfig.getBeanNamesForType(Person.class);Arrays.asList(beanNames).stream().forEach(e->System.out.println("容器中被注入的Bean:"+e));}}...
同类型多个Beans,引发原因比如使用了context.getBean(Stu.class)、@Autowired只用ByType类获取或者注入Beans的时候 o o 使用名称获取,不优先使用ByType,==如果是其它第三方(也许第三方直接ByType)那么可以采取【禁止使用】或【优先使用】 o o 禁止使用
@ConfigurationpublicclassCustomBeanConfig{@AutowiredprivateEnvironmentenvironment;/*** 、 @Bean注解声明了一个bean,bean名称默认为方法名 beanImpl* @return*/@BeanIBeanbeanImpl(){returnnewBeanImpl();}} @ComponentScan注解的使用 配置类也可以自己添加注解@ComponentScan,来显示扫描需使用的组件。
默认按照名称(by-name)装配,名称可以通过name属性指定。 @Resource—4种情况 指定name和type:通过name找到唯一的bean,找不到抛出异常;如果type和字段类型不一致,也会抛出异常 指定name:通过name找到唯一的bean,找不到抛出异常 指定type:通过tpye找到唯一的bean,如果不唯一,则抛出异常:NoUniqueBeanDefinitionException ...
*、 @Bean注解声明了一个bean,bean名称默认为方法名 beanImpl * @return */@Bean IBeanbeanImpl(){returnnewBeanImpl();}} @ComponentScan注解的使用 配置类也可以自己添加注解@ComponentScan,来显示扫描需使用的组件。 @Configuration使用@Component进行元注解,因此@Configuration类也可以被组件扫描到(特别是使用XML...
@Bean public Bar bar() { return new Bar(); } } @Component和@Configuration作为配置类的差别 @Configuration public class MyTestConfig { @Bean public Driver driver(){ Driver driver = new Driver(); driver.setId(1); driver.setName("driver"); driver.setCar(car()); return driver; } ...