首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Spring学习小结之基础篇

2012-11-18 
Spring学习总结之基础篇?当ClassPathXmlApplicationContext(applicationContext.xml)执行的时候,我们的

Spring学习总结之基础篇

?

当ClassPathXmlApplicationContext("applicationContext.xml");执行的时候,我们的spring容器对象被创建,同时
applicaionContext.xml中配置的bean就会被创建(内存[Hashmap/HashTable])

-->
<bean id="userservice" class="com.service.UserService">
<property name="name">
<value>张三</value>
</property>
</bean>


测试类:

//UserService userService=new UserService();
//userService.setName("chenzheng");
//userService.sayHello();
??? ???
ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
UserService userService=(UserService) ac.getBean("userservice");
userService.sayHello();


spring是一个容器框架,可以配置各种bean(action/service/domain/dao),并且可以维护bean与bean的关系,当我们需要使用某个bean的时候,可以使用getBean(id)即可.

?

ioc(inverse of controll ) 控制反转: 所谓控制反转就是把创建对象(bean),和维护对象(bean)的关系的权利从程序中转移到spring的容器(applicationContext.xml),而程序本身不再维护.


di(dependency injection) 依赖注入: 实际上di和ioc是同一个概念,spring设计者认为di更准确表示spring核心技术


创建工具类ApplicaionContextUtil.java:

package com.util;

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

final public class ApplicaionContextUtil {

??? private static ApplicationContext ac=null;
???
??? private ApplicaionContextUtil(){
??? ???
??? }
???
??? static{
??? ??? ac=new ClassPathXmlApplicationContext("applicationContext.xml");
??? }
??? public static ApplicationContext getApplicationContext(){
??? ??? return ac;
??? }
???
}


测试类可改为:

((UserService)ApplicaionContextUtil.getApplicationContext().getBean("userservice")).sayHello();

?

热点排行