2. spring自动注入

1.DI的实现方式----自动注入
  在bean标签中 加属性  autowire
  取值有   no   默认值
 byName   根据属性的名字  去容器中找对应的组件id
 byType   根据属性的类型去查找   类型有一样就报错
 constructor   优先按照构造方法参数的名字去查找  如果找不到 则启用参数的类型去查找
               如果按照类型找类型有相同就不加载
              用<property>  不能占住参数位置     <constructor-arg> 可以占住位置
 autodetect   自动选择  之前版本有 现在已经不支持了
 
2.bean参数注入
  2.1 普通类型 (字符串  整数  浮点数)
   <property  name="属性名"   value="值"  > </property>
   <property  name="属性名"   >
       <value> 值  <value>
   </property>
   
   <property  name="属性名"   >
        </null>
   </property>
   2.2 注入集合类型
        一个javabean 中有一个 List 类型的属性   则在配置文件中 使用  <list> 标记进行注入
  <property  name="friends"  >        
    <list>
        <value>猛哥</value>
        <value>梁哥</value>
        <value>小马</value>
    </list>
  </property>

   一个javabean 中有一个 Set 类型的属性   则在配置文件中 使用  <set> 标记进行注入
  <property  name="friends1"  >        
    <set>
        <value>猛哥</value>
        <value>梁哥</value>
        <value>小马</value>
    </set>
  </property>
 
  一个javabean 中有一个 Map 类型的属性   则在配置文件中 使用  <map> 标记进行注入  
<property  name="phones"  >        
    <map>
        <entry key=""  value=""> </entry>
        <entry key=""  value=""> </entry>
    </map>
</property>

一个javabean 中有一个 Properties 类型的属性   则在配置文件中 使用  <props> 标记进行注入  
<property  name="phones2"  >        
    <props>
         <prop  key="key1">值</prop>
         <prop  key="key2">值2</prop>
    </props>
</property>  
 
 2.3  注入的集合的单独定义    可以集合抽取出来 然后 被别的bean 引用
  <util:list  id="集合标识">
       <value>值</value>
       <value>值2</value>
  </util:list>
 
  <util:set  id="集合标识">
       <value>值</value>
       <value>值2</value>
  </util:set>
 
  <util:map  id="集合标识">
        <entry key=""  value=""> </entry>
        <entry key=""  value=""> </entry>
  </util:map>
 
  <util:properties  id="集合标识">
      <prop  key="">值</prop>
  </util:properties>  
                          
 3.练习
   定义一个Properties 集合 这个集合要求单独定义   把连接数据库的四个要素信息封装到这个集合中              
 可以使用 Spring 的EL表达式 引用 集合 或者 对象的属性数据  你只需要把 之前的 $ 符  换成  #
 之前数据库的连接信息 都在 db.properties 中  Spring  Properties集合能加载 db.properties
 <!-- 使用 db.properties 文件构建一个集合  -->
 <util:properties id="dbparam"  location="classpath:db.properties"></util:properties>               
   
 -----------------------------------------------------------------------------------------
 4.组件扫描
   4.1 作用
   Spring 提供了一套基于 标注(注解) 的配置方式,这个技术可以大大简化xml配置信息。
   4.2 组件扫描的实现步骤
      1.建立一个项目  拷贝 ioc  和  aop 的jar包
      2.拷贝spring 容器对应的配置文件    并且在这个配置文件 中 开启组件扫描
       <context:component-scan    base-package="包名">  </context:componet-scan>
      3.在对应的类上 加 对应的注解标记
        @Component      通用组件标注
        @Repository     持久化层的标注
        @Service        服务层对应的标注
        @Controller     控制层对应的标注
      4.从spring 容器中获取对应的组件对象即可
   4.3 组件的名字问题
                默认是类名首字母小写  当然也可以指定加载到容器中的组件名    
   
  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值