Bean配置(注解)【了解】【操作】

来源:互联网 发布:光大银行 大数据 编辑:程序博客网 时间:2024/06/08 09:14

1.配置Bean使用@Component注解

如需为Bean定义名称,在参数中添加Bean名称@Component("beanName")

2.设定Spring的自动扫描路径,用于检测对应的Bean是否配置了注解,并加载配置了注解的类 a)开启context空间的支持

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:context="http://www.springframework.org/schema/context"

xsi:schemaLocation="

http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd

">

b)开启自动扫描功能,并指定扫描的路径

<context:component-scan base-package="cn.itcast.annotation"></context:component-scan> 说明:扫描路径可以设置多个,中间使用,隔开,扫描路径包含指定包和子包内所有的类

3.Spring提供了3个注解开发Bean的兼容格式,用于后期分层设计扩展

@Repository 用于数据层实现类标注

@Service 用于业务逻辑层实现类标注

@Controller 用于控制层实现类进行标注

4.为Bean注入简单类型属性

a)在属性名上方声明该属性自动装配@Autowired

b)在属性名上方声明该属性注入的值@Value(value)

@Autowired

@Value("itcast")

private String msg;

注意:注解自动装配属性值无需提供对应属性的setter方法

5.为Bean注入引用类型属性

a)在属性名上方声明该属性自动装配@Autowired

b)在属性名上方声明该属性注入的值@Qualifier(bean引用名称)

@Autowired

@Qualifier("anno2")

private AnnotationOther other;

注意:被注入的Bean一定要存在,无需提供对应属性的setter方法

6.@Autowired注解属性required用于声明自动装配的数据是否是必须的

如果required=true,必须为其装配数据,如果没有值,抛出异常

如果required=false,自动装配数据失败,则注入值为null

7.Spring支持JSR-250规范提供的@Resource注解的支持

格式一:@Resource(name="myImpl")

格式二:@Autowired(required=false)

@Qualifier("myImpl")

以上两种格式效果相同

8.Bean声明周期注解 @PostConstruct 功能:为当前Bean指定init-method参数 格式:定义在成员方法的上方,兼容静态方法 @PreDestroy 功能:为当前Bean指定destory-method参数 格式:定义在成员方法的上方,兼容静态方法 注意:要求当前类被注册为Bean,否则无效果 9.Bean作用域注解 在类的定义上方添加@Scope指定Bean的作用域 常用:@Scope("prototype") 默认:@Scope("singleton") 10.Spring3.0注解支持 @Configuration配置当前类为配置类,用于加载其中配置的Bean,与静态工厂初始化Bean很相似 @Bean(name="b1")将配置类中的某个方法的返回值声明为Bean,该方法必须返回一个对象 @Configuration //设定该类参与自动扫描 public class MyBeanFactory { @Bean(name={"aa","bb","cc"}) //设定该方法的返回值是一个Bean public static BookService getInst(){ return new BookService(); } } 以上操作必须基于自动扫描功能,如不开启自动扫描,Spring将无法查找到对应的注解配置 11.可以不使用自动扫描使用Bean AnnotationConfigApplicationContext对象可以手工加载基于注解配置的Bean //用于手工添加注解开发Bean的上下文对象 AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(); //加载配置管理类 ctx.register(MyConfiguration.class); //刷新上下文对象 ctx.refresh(); 注意:注册完成后一定要进行刷新,否则加载的Bean将无法被使用

0 0
原创粉丝点击