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();
?