Chinaunix首页 | 论坛 | 博客
  • 博客访问: 13317
  • 博文数量: 5
  • 博客积分: 160
  • 博客等级: 入伍新兵
  • 技术积分: 55
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-04 10:50
文章分类

全部博文(5)

文章存档

2011年(1)

2009年(4)

我的朋友
最近访客

分类: 项目管理

2009-08-05 14:08:16

   Spring的Ioc(Inversion of Control)控制反转,优点是把代码的耦合度大大降低。Spring的框架能实现的是:开始代码之间的相互依赖控制权在自代码本身(一个对象需要另一个对象的时,都是在代码中new那个对象),Ioc是把控制权放在了容器里(即不需要代码自己去new那个对象,而是由Spring容器给创建那个对象)。

 1,最简单的小例子 在beans.xml中


       xmlns:xsi=""
       xsi:schemaLocation="
           ">

 

 

 

ApplicationContext act = new ClassPathXmlApplicationContext"beans.xml");

act.getBean("text1"); //这样就可以得到PersonText的实例

 

2、在bean里的基本配置

<bean id="" class="" init-method="init" destroy-method="destroy" lazy-init="true" scope="prototype"></bean>

init-method指定在class里的初始化方法

destroy-method指定在class里销毁的方法,一般就是在容器关闭时,才掉此方法

lazy-init为true指延迟实例化,一般在单例模式时,容器加载实例就被创建。true就是在调用该实例是才创建

scope为作用域,不指定时,容器只创建一个该class实例。指定为protoytype时,没调用就创建一个新的class实例,所以当设置为prototype时,该实例为延迟加载

3、基本类型的注入

<bean id="" class="">
    <property name="username" value="name"/>
    <property name="age" value="100" />
</bean>

在class类里有String username,Internet age这两个属性,并有set,get方法

4、Object的注入

<bean id="text1" class=""></bean>
<bean id="text2" class="text2">
     <property name="text1" ref="text1" />
</bean>

在text2类中需要一个text1这样的属性 可以用ref去指定bean节点。还可以下面这样

<bean id="text1" class="text1">
    <property name="text1">
        <bean class="text1"></bean>
    </property>
</bean>

 

5、Map,Set,List,Properties的注入

<bean id="" class="">


   

      

         

      

   

   

        

             aa

        

   

    

        

             aaaaa

        

    

     

         

               dagdf

         

    
</bean>

6、构造注入
java代码

class TextService{
   private User user; //User 为自己定义的类
   private String name;

   public TextService(String name,User user){

        this.name=name;

        this.user = user;

   }

  ......
}

xml代码:

<bean name="user" class="bean.User">
</bean>

            

    

    

    

      

阅读(674) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~