Spring基础学习

来源:互联网 发布:执业药师注册网络平台 编辑:程序博客网 时间:2024/05/29 10:30

1.Spring 的IOC操作

IOC操作有两部分 ,一是IOC的配置文件方式,二是IOC的注解方式

2.IOC的原理

1)创建xml配置文件,配置要创建对象的类<bean id=""  class="" ></bean>  //class中为类的全路径 

2)  创建工厂类,使用dom4j 解析配置文件+反射(不需自己完成工厂类 )

    使用dom4j解析配置文件,然后根据id值,得到id值对应的class属性值 String  classValue = “class属性值”;

    使用反射创建类对象

    Class clazz = Class.forName(classValue);

    UserVervice service = clazz.newInstance();  return service; 

降低了类之间的耦合度,类名改了,只需要更改配置文件中路径就可以

3.IOC入门   

步骤 1)导入工程需要的jar包(通过maven可以获得)

步骤2)编写类 ,在类中写入方法

步骤3)创建spring 配置文件,配置创建类

步骤4)测试,创建测试类 (加载配置文件的方法:ApplicationContext context = new ClassPathXmlApplicationContext("配置文件路径+名称");   )

             通过配置文件中的id获得对象 User user = (User)  context.getBean("id");

4.Bean 的三种实例化的方法(2,3一般不使用)

1)使用类的无参数构造创建(重点) 

<bean id = ""  class="类的全路径"></bean>

2)使用静态工程方法,在类中有一个返回对象的静态方法

<bean id=""  class =""  factory-method = ""></bean>\

3)使用实例方法 

<bean id = "a"  class = ""  />  <bean id = "a1"   factory-bean = "a" factory-method = "实例方法" />

5.bean标签的常用属性

1)id 属性 :名称,任意命名,不能包含特殊字符,根据id配置对象 

2)class属性:创建对象的所在类的全路径 

3)name属性:功能和id 属性一样,id不能有特殊字符,name属性可以有,一般都用id,name在struts1 中还使用

4)scope属性:singleton (默认属性,)单例,只创建一次     prototype (多例,每次创建都是一个新的对象)

6.属性注入 

1)set方法注入(重点)  类中有属性的set方法

<bean id ="" class = "" >  <property  name="属性名'  value= " 设置的值" />     </bean> (property 可以有多个)

2)构造方法注入

<bean id = ""  class = "" ><constructor-org name=" 属性名" value = "属性值 " /> </bean>

7.对象属性的注入

将一个类作为另一个类是字段属性值,生成其set方法

  public class Service {

           public Dao dao;

         public  void setDao(Dao dao){

                                  this.dao = dao;

                              }

  }

<bean id = "Dao" class = " " />

<bean id="Service" class ="" >

<property name= " dao" ref="Dao"  > //ref 中写的是上面bean的id属性,name是Service中的属性名称

</bean>

8.P名称空间注入

首先引入 P 名称空间

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

<bean id="" class ="" p:属性名 = "值">

9.复杂类型的属性注入

1)数组

<bean id ="'  class ="'>

   <property name=""> 

                  <list>   <value>值</value>(value可以有多个) </list>

           </property>

</bean>

2)list 集合 

<bean id ="" class ="'>

    <property  name ="">

              <list><value>值</value>(value可以有多个)</list>

   </property>

</bean>

3) Map类型

<property>

        <map>

            <entry  key=" 键"  value = "值 "></entry>(entry可以有多个)

        </map>

</property>

4)properties 类型 

<property> 

      <props><prop  key =""> 值</prop>(prop可以有多个)</props>

</property>

10.IOC和DI的区别

1)IOC:控制反转,把对象交给Spring配置文件配置

2)DI:依赖注入,向类里面的属性设置值

3)联系:依赖注入不能单独存在,需要在IOC的基础上完成

原创粉丝点击