发表于: 2017-08-08 21:22:00

1 813


今天完成的事:继续学习spring的相关知识 看了很多spring基础 这个框架与原来比较

            以获取对象的方式来进行比较  传统的方式 是通过new 关键字主动创建一个对象

            而Spring中对象的生命周期由Spring来管理,直接从Spring那里去获取一个对象。使用IOC方式, IOC是反转控制(\nversion Of Control)的缩写,就像控制权从本来在自己手里,交给了Spring。 

在resource目录下新建applicationContext.xml文件

applicationContext.xml是Spring的核心配置文件,通过关键字c即可获取Category对象,该对象获取的时候,即被注入了字符串"category 1“到name属性中
打个比喻:传统方式:相当于你自己去菜市场new 了一直鸡,但是是生鸡,要自己拔毛,去内脏,再上花椒,酱油,烤制,经过各种工序之后,才可以食用。 用IOC相当于去馆子(Spring)点了一直 鸡,交到你手上的时候,已经五味俱全,你就只管吃就行了。

<bean name="c" class="com.jnshu.Category">
        <property name="name" value="category 1" />
    </bean>

测试文件

package com.jnshu.test;
 
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
 
import com.jnshu.Category;
 
public class TestSpring {
 
    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext(
                new String[] { "applicationContext.xml" });
 
        Category c = (Category) context.getBean("c");
         
        System.out.println(c.getName());
    }

}

还有一些代码没有调试成功

明天计划的事:继续Spring 尝试与Mybatis融合

遇到的问题:因为理解的很不好 出现很多错误 没有调试好

今天的收获:学习 Spring的工厂容器 ApplicatioContext 接口有两个实现类:

ClassPathXmlApplicationContext  :加载类路径下 Spring 的配置文件. 

FileSystemXmlApplicationContext  :加载本地磁盘下 Spring 的配置文件. 

BeanFactory:

BeanFactory  :是在 getBean 的时候才会生成类的实例. 

ApplicationContext :在加载 applicationContext.xml(容器启动)时候就会创建. 


xml配置文件

生命周期设置:通过配置<bean>标签上的 init-method 作为 Bean 的初始化的时候执行的方法,配置 destroy-method作为 Bean 的销毁的时候执行的方法。 

销毁方法想要执行,需要是单例创建的 Bean 而且在工厂关闭的时候,Bean 才会被销毁.


Spring生成Bean有三种方式

<!-- 方式一:无参数的构造方法的实例化 --> 

<bean id="bean1" class="cn.itcast.spring.demo3.Bean1"></bean> 

<!-- 方式二:静态工厂实例化 Bean --> 

<bean   id="bean2"  class="cn.itcast.spring.demo3.Bean2Factory" 

factory-method="getBean2"/> 

这种方式有一个工厂类

public class Bean2Factory { 

public static Bean2 getBean2(){  

return new Bean2(); 

} }

<!-- 方式三:实例工厂实例化 Bean -->

<bean id="bean3Factory" class="cn.itcast.spring.demo3.Bean3Factory"></bean> 

<bean id="bean3" factory-bean="bean3Factory" factory-method="getBean3"></bean> 

提供 Bean3 的实例工厂: 

public class Bean3Factory { 

public Bean3 getBean3(){ 

return new Bean3(); }}


Spring 的 Bean 的属性注入: 

<!-- 第一种:构造方法的方式 --> 

<bean id="car" class="cn.itcast.spring.demo4.Car"> 

<constructor-arg name="name" value="保时捷"/> 

<constructor-arg name="price" value="1000000"/> 

</bean> 

<!-- 第二种:set 方法的方式 --> 

<bean id="car2" class="cn.itcast.spring.demo4.Car2"> 

 <property name="name" value="奇瑞QQ"/> 

 <property name="price" value="40000"/> 

 </bean> 



<!-- 注入对象类型的属性 --> 

<bean id="person" class="cn.itcast.spring.demo4.Person"> 

 <property name="name" value="会希"/> 

 <!-- ref 属性:引用另一个 bean 的 id 或 name --> 

<property name="car2" ref="car2"/> 

</bean> 





返回列表 返回列表
评论

    分享到