首页 > 代码库 > 重新学习之spring第一个程序,配置IOC容器
重新学习之spring第一个程序,配置IOC容器
第一步:导入相关jar包(此范例导入的是spring3.2.4版本,spring2.5版本只需要导入spring核心包即可)
第二步:在项目的src下配置applicationContext.xml的配置文件
applicationContext.xml文件
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xmlns:aop="http://www.springframework.org/schema/aop" 5 xmlns:tx="http://www.springframework.org/schema/tx" 6 xsi:schemaLocation=" 7 http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd 8 http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd 9 http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">10 11 <!-- 12 lazy-init:true 懒加载,初始ioc化容器的时候,不建立对象13 lazy-init:false(默认) 不懒加载,初始化ioc容器的时候,就讲applicationContext.XML中所有配置的类的对象创建,并建立关系14 scope:prototype每次取对应id的类的对象,都新创建一个15 scope:singleton(默认)类似于单例模式,只要容器初始化一个类对象,以后所有的取用,都是取这一个16 -->17 18 <!-- 通过setter方法,依赖注入对象。控制反转 -->19 <bean id="userDao" class="com.bjsxt.shang.dao.UserDao" lazy-init="default" scope="singleton"></bean>20 <bean id="userAction" class="com.bjsxt.shang.action.UserAcion" lazy-init="default" scope="prototype">21 <property name="userDao" ref="userDao"></property>22 </bean>23 24 25 26 </beans>
第三步:编写测试类,获取applicationContext对象,即IOC容器对象
test类源码
1 package com.bjsxt.shangxiaofei; 2 3 import org.springframework.context.ApplicationContext; 4 import org.springframework.context.support.ClassPathXmlApplicationContext; 5 6 import com.bjsxt.shang.action.UserAcion; 7 import com.bjsxt.shang.dao.UserDao; 8 9 public class Test {10 public static void main(String[] args) {11 12 //官方推荐,建立xml文件,配置程序中对象,和建立对象间关系的是applicationContext.xml13 //平民版的xml是 beans.xml controller.xml dao.xml service.xml14 //获取解析,并依赖注入applicationContext.XML文件的ioc容器15 ApplicationContext acIoc=new ClassPathXmlApplicationContext("applicationContext.xml");16 //ApplicationContext ioc=new ClassPathXmlApplicationContext(new String[]{"applicationContext.xml"});17 18 19 //获取所有的ioc容器20 //BeanFactory是所有Spring Ioc容器的父接口21 //BeanFactory beanFactory=new ClassPathXmlApplicationContext(new String[]{"applicationContext.xml"});22 23 UserDao dao=(UserDao) acIoc.getBean("userDao");24 UserDao dao1=(UserDao) acIoc.getBean("userDao");25 //测试IOC容器中生成的对象是不是单例的。26 System.out.println(dao==dao1);27 28 UserAcion userAction=(UserAcion) acIoc.getBean("userAction");29 userAction.test();30 }31 32 33 34 }
在applicationContext.xml中是将项目中对象进行管理。不需要手动去new对象,只要在xml中将对象之间的依赖关系配置清楚即可。所以该测试类,最后打印结果是执行了UserDao中的方法。
重新学习之spring第一个程序,配置IOC容器
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。