spring第三篇

在昨天下午更新sprin第二篇中,叙述了将对象交给spring创建和管理,今天在spring第三篇中,主要写两个点一是spring的思想 二是spring中bean元素的属性配置。

1 spring思想 

   1.1 IOC(Inverse of  Control) :控制反转,将对象的创建权交给了 Spring.

   1.2  DI :Dependency Injection 依赖注入.需要有IOC 的环境,Spring 创建这个类的过程中,Spring 将类的依赖的属性设置进去. 实现IOC 需要DI做支持,在注入方式上有set注入

         构造函数注入  字段注入  其中set注入是最常用的,构造函数相对来说用的也相对较多。

2 spring 配置详解

   2.1 bean元素的配置

      clas属性 :被管理对象的完整类名

      name属性:需要给被管理对象起一个名字 可以重复

       id属性:与name属性一模一样 但是名字不可以重复  建议使用name属性

   建立User和Plane两个类(分别有名字年龄以及名字和颜色的属性   生成get和set  同时生成toString方法)---》代码省略

   配置代码如下:

<?xml version="1.0" encoding="UTF-8"?>
  <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans"                  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd ">
  <bean name="user" class="com/lijun/Demo/User.java"></bean>
</beans>

同时bean元素还可以配置scope 属性   scope的默认值为sigleton ----->单例表示spring容器中只会存在一个实体

配置文件如下

<bean name="user" class="bean.User"></bean>

测试代码如下:

package demo;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import bean.User;

public class Demo {
@Test
public void fun1(){
ApplicationContext ac = new ClassPathXmlApplicationContext("NewFile.xml");
User u = (User)ac.getBean("u");
User u1 = (User)ac.getBean("u");
System.out.println(u==u1);
}
}   结果为true

当配置文件为:<bean name="u" class="bean.User" scope="prototype"></bean>

测试代码不变   结果为false

猜你喜欢

转载自www.cnblogs.com/lijun6/p/10344425.html