学习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>

 

 

 

  

 

posted on 2018-12-15 17:33  axu521  阅读(239)  评论(0编辑  收藏  举报

<