zoukankan      html  css  js  c++  java
  • Spring基础2

    一、Spring属性注入

      1)构造方法属性注入

        

      

      2)set方法属性注入:通过在bean对象所属类中提供相应字段的set方法,并在配置文件中配置<property.....>

    <bean id="UserDao" class="com.ual.demo1.UserDaoOracleImpl" ><!--id对应接口名,class对应接口的具体实现类-->
            <!--
            name:要注入的属性值,实现类中要有该值的set方法
            value:注入值(赋值)
            -->
            <property name="name" value="ual"></property>
        </bean>

      3)set方法设置对象类型的属性(引用类型属性注入):类里的引用类型也需要交给Spring来管理

        

    package com.ual.demo3;
    //Student类,里面包含引用类型dog
    public class Student {
        private String name;
        private Integer age;
        public Dog dog;
    
        public Student(String name, Integer age) {
            this.name = name;
            this.age = age;
        }
    
        public void setLw(Dog lw) {
            this.dog = lw;
        }
    }
    package com.ual.demo3;
    //引用类型dog类
    public class Dog {
       public  String name;
    
        public void setName(String name) {
            this.name = name;
        }
    }

      4)p名称空间的属性注入

        使用p命名空间,就不需要写那么多的property,使用时要添加名称空间。

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

      

      5)EL表达式属性注入

        vlaue里写上EL表达式的值

      

    #{‘字符串’} #{数字} #{参数}  value="#{dog.name}"

      6)集合类属性注入 

      1.数组:

      public String[] attr;
    
        public void setAttr(String[] attr) {
            this.attr = attr;
        }
        <property name="attr">
                    <list>
                        <value>zx</value>
                        <value>ls</value>
                        <value>ww</value>
                    </list>
                </property>

      2. List

     public List<Integer> mylist;
    
        public void setMylist(List<Integer> mylist) {
            this.mylist = mylist;
        }

       

     <property name="mylist">
                    <list>
                        <value>11</value>
                        <value>22</value>
                    </list>
                </property>

      3.set

      

       public Set mySet;
    
        public void setMySet(Set mySet) {
            this.mySet = mySet;
        }
       <property name="mySet">
                    <set>
                        <value>123</value>
                        <value>23</value>
                    </set>
                </property>

      4.Map

      

     public Map myMap;
    
        public void setMyMap(Map myMap) {
            this.myMap = myMap;
        }

      

     <property name="myMap">
                    <map>
                        <entry key="1" value="1"></entry>
                        <entry key="2" value="3"></entry>
                    </map>
                </property></bean>

    二、IOC注解方式快速入门

      1)配置

        1.在Spring4之后,想要使用注解形式,必须要引入aop包。 

        2.在配置文件中,还要引入一个context约束。

      

        3.配置组件扫描:哪个包下的类型使用组合扫描。指定包后,该包下的类可以使用 注解。

      

     <!--指定注解的扫描包,后面写上包名-->
        <context:component-scan base-package="com.ual.demo"></context:component-scan>

        4.在类上添加注解,确定将哪些类交给Spring

          

          同时,要在设置中允许注解b-c-a

        5.使用注解注入属性

          1.可以不提供set方法,直接在直接名上添加@value("值")

          2.如果提供set方法,在set方法上添加@value("值")

      

    四、IOC注解详解

        1).@Component:修改一个类,将这个类交给Spring来管理,相对于在配置文件中配置<bean id="" class="">

        2).@Component三个衍生注解:为了更好的进行分层,Spring可以使用其他三个注解,功能类似,目前使用哪一个功能都一样。后期可能回添加属于各自的属性。

                     1.@Controller:web层

                   2.@Service:service层

                 3.@Repository:dao层

           这三个和Component一样的功能。

        3).属性注入

          1.@Value:设置普通属性值

          2.@Autowired:设置对象类型的属性值,直接使用这种方式,是按照类型完全属性注入,不需要再注解上使用id名称,习惯是按照名称完成属性注入。(根据bean对象中定义的引用类型类型名,找到交给Spring 的类中有无对应类)

          

              3.但是习惯是按照名称进行注入的,可以用@Autowired与@Qualifier("dog")

              4.3中可以不用两个结合,就用@Resource(name="dog")根据名称注入

              5.PostConstrut:初始化方法

              6.PreDestory:销毁方法  5,6在bean中自己创建的方法上调用

              7.scope:作用范围,在类上调用

       XML与注解比较:XML可以适用于任何场景,结构清晰,维护方便,注解不是自己提供的类使用不了,开发简单。

      XML与注解结合,XML管理Bean,注解完成属性注入,使用过程中,可以不用扫描包,扫描是为了类上的注解,在没有扫描的情况下,属性注入使用注解

      

    使用@Resource@Value@Autowired@Qulifier

     五、应用

    1.xml形式

    2.注解形式

  • 相关阅读:
    去重
    JavaScript 数组
    变量
    2017.3.19 for
    2017.3.19 if,for
    2017.3.14
    2017.3.10
    2017.3.9
    2017.3.7-1
    2017.3.7
  • 原文地址:https://www.cnblogs.com/UalBlog/p/10644536.html
Copyright © 2011-2022 走看看