spring的@Bean注解
程序员文章站
2022-05-21 22:10:42
...
@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)";
}
@Configuration
public class SpringConfiguration {
//创建数据源对象
@Bean(value = "dataSource")
public DataSource createDataSource() {
return new DriverManagerDataSource();
}
@Bean(value = "jdbcTemplate")
public JdbcTemplate JDBCTemplate(@Autowired DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
}
public class BeanTest {
public static void main(String[] args) {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext("config");
DataSource dataSource = context.getBean("dataSource", DataSource.class);
System.out.println(dataSource);
}
}
当有指定的属性值value=dataSource,在ioc容器中就可以根据id=dataSource来注入对应的对象
如果没有,默认使用的时方法名作为注入的id
@Configuration
public class SpringConfiguration {
//创建数据源对象
@Bean
public DataSource createDataSource() {
return new DriverManagerDataSource();
}
@Bean
public JdbcTemplate JDBCTemplate(@Autowired DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
}
public class BeanTest {
public static void main(String[] args) {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext("config");
DataSource dataSource = context.getBean("createDataSource", DataSource.class);
System.out.println(dataSource);
}
}
上一篇: 国内湖泊景点有哪些 国内湖泊景点盘点
下一篇: Word2007插入符号