Spring框架2--信息注入、组件扫描

一、信息注入:

1、对象注入:<property name="属性名" ref="要注入的Bean的id">

2、值注入:<property name="属性名" value="值"></property>

3、注入Spring表达式(#{id.key})、集合注入

           注意:util命名空间需要引入才能用(如下图):

 

二、组件扫描技术   (Spring2.5版本之后才有,即JDK5.0才有)

可以自动扫描指定报下的所有类,如果类定义中存在约定注解标记会将该组件转化成<bean>定义,纳入Spring容器中。

1、使用方法:

扫描二维码关注公众号,回复: 5699216 查看本文章

      --开启组件扫描,指定扫描路径(路径可长可短)

      --类定前使用一下注解标记之一即可:@Component,@Service,@Controller,@Repository

2、注解标记:

@Component:无法区分时使用(各处可以用)

@Service:用在Service组件上

@Controller:建议用在Action,Controller组件上

@Repository:用在DAO上面

@Scope("prototype"):设置模式为原型(注解默认是单例)

@Resource:--》默认按照变量名称找  --》失败再按类型(JAVA EE提供)

@Autowired:跟@Resource相反,先默认类型匹配注入,失败再按变量名称匹配注入(Spring提供)

@Inject:(第三方提供)用ID查找要与@Named(“id”)一起使用

注意:@Resource和@Autowired要求必须注入一个符合的对象,没有则抛出异常。@Autowired(required=false)来不抛异常,而@Resource没有这种操作。

    --如果存在注入关系,可以使用下面注解标记在变量定义或setter方法前使用@Resource,可以按类型注入和按名称注入,如下图

注意:加了注解之后,可以省去setter方法

3、注入Spring表达式:

     --先配置:<util:properties id="dbParam" location="classpath:org/lhm/config/db.properties" />

     --在在变量前加上注解:@Value("#{dbParam.userName}")

     --将组建扫描到Spring容器(用@Service或者@Component)

 

 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/qq_38644907/article/details/88011783
今日推荐