Spring配置

Spring配置

  1. alias

     <alias name="user" alias="userNes"/>

    如果添加了别名,我们也可以使用别名获取对象

  2. bean

     <bean id="user" class="com.User" name="user2,u2" >
         <property name="name" value="YanAemons"/>
     </bean>

    id: bean的唯一标识符,也就是相当于我们学过的对象名

    class:bean对象所对应的全限定名:包名 + 类型

    name:别名(可以同时取多个别名),类似alias

  3. import

    import一般用于团队开发使用,他可以将多个配置文件导入合并为一个(一个总配置文件导入别的xml配置文件)

依赖注入

  1. 构造器注入

    上文已经说过

  2. Set方式注入【重点】

    • 依赖注入:Set注入

      • 依赖:bean对象的创建依赖于容器

      • 注入:bean对象中的所有属性,由容器来注入

         // Student Class
         import java.util.*;
         
         public class Student {
             private String name;
             private Address address;
             private String[] books;
             private List<String> hobbies;
             private Map<String, String> card;
             private Set<String> games;
             private String wife;
             private Properties info;
         
             public String getName() {
                 return name;
            }
         
             public void setName(String name) {
                 this.name = name;
            }
         
             public Address getAddress() {
                 return address;
            }
         
             public void setAddress(Address address) {
                 this.address = address;
            }
         
             public String[] getBooks() {
                 return books;
            }
         
             public void setBooks(String[] books) {
                 this.books = books;
            }
         
             public List<String> getHobbys() {
                 return hobbies;
            }
         
             public void setHobbys(List<String> hobbies) {
                 this.hobbies = hobbies;
            }
         
             public Map<String, String> getCard() {
                 return card;
            }
         
             public void setCard(Map<String, String> card) {
                 this.card = card;
            }
         
             public Set<String> getGames() {
                 return games;
            }
         
             public void setGames(Set<String> games) {
                 this.games = games;
            }
         
             public String getWife() {
                 return wife;
            }
         
             public void setWife(String wife) {
                 this.wife = wife;
            }
         
             public Properties getInfo() {
                 return info;
            }
         
             public void setInfo(Properties info) {
                 this.info = info;
            }
         
             @Override
             public String toString() {
                 return "Student{" +
                         "name = " + name + '\'' +
                         ",address" + address.toString() +
                         ",book" + Arrays.toString(books)+
                         ",hobbies=" + hobbies+
                         ",card=" + card+
                         ",games=" + games+
                         ",wife=" + wife+ '\'' +
                         ",info=" + info +
                         "}";
            }
         }

        xml配置

         <?xml version="1.0" encoding="UTF-8"?>
         
         <beans xmlns="http://www.springframework.org/schema/beans"
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                xsi:schemaLocation="http://www.springframework.org/schema/beans
             http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
         
             <bean id="address" class="Address">
                 <property name="address" value="南京"/>
             </bean>
             <bean id="student" class="Student">
                 <!--   普通注入 value-->
                 <property name="name" value="YanAemons"/>
                 <!--   Bean注入,ref注入-->
                 <property name="address" ref="address"/>
         
                 <!-- 数组注入-->
                 <property name="books">
                     <array>
                         <value>红楼梦</value>
                         <value>三国演义</value>
                         <value>水浒传</value>
                         <value>阿衰</value>
                     </array>
                 </property>
                 <!-- List注入-->
                 <property name="hobbys">
                     <list>
                         <value>拍拍</value>
                         <value>嘿嘿</value>
                     </list>
                 </property>
                 <!-- Map注入-->
                 <property name="card">
                     <map>
                         <entry key="身份证" value="235432523456234"/>
                         <entry key="学生卡" value="34523523"/>
                     </map>
                 </property>
                 <!-- Set注入-->
                 <property name="games">
                     <set>
                         <value>永劫无间</value>
                         <value>Apex</value>
                         <value>阴阳师</value>
                     </set>
                 </property>
         
                 <!-- Null设置-->
                 <property name="wife">
                     <null/>
                 </property>
         
                 <!-- Property注入-->
                 <property name="info">
                     <props>
                         <prop key="auth">YanAemons</prop>
                         <prop key="age">20</prop>
                         <prop key="Id">0</prop>
                     </props>
                 </property>
             </bean>
         
         </beans>
         

         

  3. 拓展方式注入

    p命名和c命名空间

    这两种不能直接使用,要导入相应的xml包

posted @ 2021-09-09 21:51  YanAemons  阅读(132)  评论(0编辑  收藏  举报