Spring IOC复习笔记

最近趁着公司项目不是很忙的时候抽空复习下框架知识,随着项目开发的深入竟然有种越来越业余的感觉了,各种各样的框架,各式各样的封装整的人都没一点自己的思想和主见了,而且对于之前学习的很多东西都逐渐的模糊了。现在抽空整理复习一下,做下笔记将来忘了可以随时过来查笔记呵呵。

Spring IOC Inverse Of Control Spring中的控制反转实际也就是把我们常用的一些bean对象交给IOC容器去创建和管理,不用再在程序中来手动创建和维护了。

首先来看看DI  Dependency Injection常用的依赖注入有三种方式:接口方法注入,setter方法注入和构造方法注入。

1.接口注入:

接口注入式是指客户类所有的注入方法抽取到一个接口中,客户类通过实现这一接口提供的注入方法。

1).提供接口

public interface IService{

        public void go();

}

2).接口实现类

pubic class Service implements IService{

        public void go(){

                System.out.println("接口注入方法=========");

        }

}

3).注入接口

public interface Injectable{

        void injecService(IService service);

}

 

4).注入接口实现类

public class Consumer implements Injectable{

        private IService service=null;

        public void doSomething(){

               service.go();

        }

}

public static void main(String args[]){

        IService service =new Service();

        Consumer consumer=new Consumer();

         consumer.injecService(service);

        consumer.doSomething();

}

 

2.setter方法注入

通过setter方法注入将一些属性的值配置到xml文件中然后在从中读取

1)属性类

public class UpperAction{

        private Stirng message;

        public String getMessage(){

                  return message;

       }

       public void setMessage(String string){

           message=string;

       }

}

2)。配置applicationContext.xml文件

<bean    id="theUpperAction" class="UpperAction">

       <property name="mesage"><!--这里的message对应setter方法后面紧跟的参数-->

                 <value>setter方法注入测试成功!!!</value>

        </property>

</bean>

3).测试注入方法

public class TestSetter{

        public static void main(String args[]){

                 Resource re=new ClassPathResource("applicatonContext.xml");

                 BeanFactory factory=new XmlBeanFactory(re);

                 UpperAction upper=(UpperAction)factory.getBean("theUpperAction");

System.out.println("==="+upper.getMessage());

        }

}

 

3.构造方法注入

1).属性所在的类

public class User{

         private String userName;

        private String password;

       属性对应的set和get方法.......

}

2).XML配置文件

<bean id="user" class="User">

        <constructor-arg index="0">

               <value>admin</value>

        </constructor-arg>

         <constructor-arg  index="1">

               <value>123</value>

        </constructor-arg>

 </bean>