zoukankan      html  css  js  c++  java
  • 环境搭建及创建对象方式及赋值(注入)

    1、导入jar

      1.1、基本类包:四个核心包  一个日志包(commons-logging)

      

    2、在src下新建applicationContext.xml

      2.1 文件名称和路径自定义

      2.2 记住Spring容器ApplicationContext,   applicationContext.xml 配置的信息最终存储到ApplicationContext容器中

      2.3 Spring配置文件是基于schema

        2.3.1 schema文件扩展名 .xsd

        2.3.2 把schema理解成DTD的升级版

          2.3.2.1 比DTD具备更好的扩张性

        2.3.3 每次引入一个xsd文件是一个namespace(xmlns)

      2.4 配置文件中只需要引入基本schema

        2.4.1 通过<bean/>创建对象

        2.4.2 默认情况下,配置文件被加载时创建对象

    <?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.xsd">
            <!-- id表示获取到对象标识  Class哪个类的对象  -->
            <bean id="peo" class="com.bjsxt.pojo.People"></bean>
      </beans>

    3、编写测试方法

      3.1 getBean("<bean>标签id值",返回值类型)  如果没有第二个参数默认是obejct

      3.2 getBeanDefinitionNames() ,Spring容器中目前所有管理的所有的对象

     1 public class Test {
     2     public static void main(String[] args) {
     3         /*People pe=new People();*/
     4         
     5         ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
     6         People peop = ac.getBean("peo",People.class);
     7         System.out.println(peop);
     8         
     9 //        String[] names = ac.getBeanDefinitionNames();
    10 //        for(String str:names){
    11 //            System.out.println(str);
    12         }
    13         
    14     }

    4、Spring创建对象的三种方式

      1 通过构造方法创建

        1.1 无参构造创建:默认情况

        1.2 有参构造创建:需要明确配置

          1.2.1 需要在类中提供有参构造方法

          1.2.2 在applicationContext.xml 中设置调用哪个构造方法创建对象    

            1.2.2.1 如果设定的条件匹配多个构造方法执行最后的构造方法

            1.2.2.2 index:参数的索引,从0开始

            1.2.2.3 name:参数名

            1.2.2.4 type:类型(区分开关键字和封装类int 和Integer)

     1 <beans xmlns="http://www.springframework.org/schema/beans"
     2     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     3     xsi:schemaLocation="http://www.springframework.org/schema/beans
     4         http://www.springframework.org/schema/beans/spring-beans.xsd">
     5         <!-- id表示获取到对象标识  Class哪个类的对象  -->
     6         <bean id="peo" class="com.bjsxt.pojo.People">
     7         <constructor-arg index="0" value="阿旭"  ></constructor-arg>
     8         <constructor-arg index="1" value="21"></constructor-arg>
     9         </bean>
    10   </beans>

      2 实例工厂

        2.1 工厂设计模式:帮助创建类对象,一个工厂可以生产多个对象

        2.2 实例工厂:需要先创建工厂,才能生产对象

          我这里是简单实例,还可以单例工厂,抽象工厂,,,,

    public class CreatePeopleFactory {
        public People newInstance(){
            return new People("测试22",22);
        }
    }

        2.3 在applicationContext.xml中配置工厂对象和需要创建的对象

            <bean id="factory" class="com.bjsxt.pojo.CreatePeopleFactory"></bean>
              <bean id="peo1" factory-bean="factory" factory-method="newInstance"></bean>

      3 静态工厂

        3.1 不需要创建工厂,快速创建对象

        3.2 实现步骤

          3.2.1 编写一个静态工厂(在方法上添加static)

    public class CreatePeopleFactory {
        /**
         * 静态工厂
         */
        public static People newInstance(){
            return new People("测试33",23);
        }
    }

          3.2.2 在applicationContext.xml中配置工厂的方法

    <bean id="peo2" class="com.bjsxt.pojo.CreatePeopleFactory" factory-method="newInstance"></bean>

    5、如何给Bean的属性赋值(注入)

      1、通过构造方法设置值

      2、设置注入(通过set方式)

        2.1 如果属性是基本数据类型或String等简单数据类型

    	<bean id="peo" class="com.bjsxt.pojo.People">
    		<property name="name" value="阿旭521"></property>
    		<property name="age" value="521"></property>
    	</bean>
            
    

         2.1.1 等效于

        <bean id="peo" class="com.bjsxt.pojo.People">
    
            <property name="name"><value>"阿旭522"</value></property>
            <property name="age"><value>522</value></property>
        </bean>

        2.2 如果属性是Set<?>,通过这种方式注入, List<?>一样(如果list就只有一个值,可以使用value=进行赋值)

     1     <bean id="peo" class="com.bjsxt.pojo.People">
     2         <property name="name"><value>"阿旭522"</value></property>
     3         <property name="age"><value>522</value></property>
     4         <property name="sets">
     5             <set>
     6                 <value>1</value>
     7                 <value>2</value>
     8                 <value>3</value>
     9                 <value>4</value>
    10             </set>
    11         </property>
    12     </bean>
    13         

        2.3 如果属性是数组通过这种方式注入,String[] 

            <property name="strs">
                <array>
                    <value>1</value>
                    <value>2</value>
                    <value>3</value>
                </array>
            </property>

          2.3.1 如果数组只有一个值,可以使用value进行赋值

            <property name="strs" value="测试">
            </property>

        2.4 如果属性是Map<?,?>通过这种方式

            <property name="maps" >
                <map>
                    <entry key="a" value="xu"></entry>
                    <entry key="b" value="wei"></entry>
                </map>
            </property>

        2.5 如果属性是 Properties类型 通过这种方式注入

    <property name="demo">
         <props>
               <prop key="key">  value  </prop>
               <prop key="key1">   value1  </prop>  
          </props>
    </property>

      

    好好学习,天天向上。 努力工作,给自己的和家人一个满意的答案。。。。
  • 相关阅读:
    教你怎么叠T恤
    最动人的情歌《The Power of Love》by Celine.Dion
    使代码简洁的 5 条忠告
    Timeout MessageBox
    内联函数
    局部对象
    const用法(转)
    心情
    内联函数
    局部对象
  • 原文地址:https://www.cnblogs.com/axu521/p/10124033.html
Copyright © 2011-2022 走看看