Spring2.5学习1.1_bean配置及其Spring容器的实例化
来源:互联网 发布:淘宝 二手 编辑:程序博客网 时间:2024/05/02 00:53
Spring是一个开源的控制反转(Inversion of Control,IoC)和面向切面(AOP)的容器框架,它的主要目的是简化企业开发。
下面来介绍Spring容器的实例化
所需jar文件:
spring.jar
commons-logging.jar
实例化Spring容器常用的两种方式
方法一:在类路径下来寻找配置文件来实例化容器
ApplicationContext ctx = new ClassPathXmlApplicationContext(new String[]{"beans.xml"});
方法二:在文件系统路径下寻找配置文件来实例化容器
ApplicationContext ctx = new ClassPathXmlApplicationContext(new String[]{"d:\\beans.xml"});
第二种方式测试时可以用,但是正式生产环境下不可取,因为文件系统路径会不一致。
说明:Spring的配置文件可以有多个,可以通过String数组来实现。
接下来用方法1来实现Spring容器的实例化,用到单元测试:
ApplicationContext 只是一个接口,通过接口来引用Spring容器的实例类 ClassPathXmlApplicationContext
Spring容器有很多接口,可以通过任何一个接口来引用它的实例类。
ClassPathXmlApplicationContext的构造方法中,可以直接接受一个String类型的参数,当只有一个配置文件时,可以不用数组。
用Spring容器后,可以将业务bean直接交给Spring容器来管理。
面向接口的编程~
SpringTest.java JunitTest类
package junit.test;import org.junit.BeforeClass;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import xjj.service.PersonService;public class SpringTest {@BeforeClasspublic static void setUpBeforeClass() throws Exception {}@Test public void instanceSpring(){ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");PersonService personService = (PersonService)ctx.getBean("personService");// 获取bean之后可以用接口调用bean的方法personService.save();}}
bean的ID属性唯一,但是不能包含特殊字符,如果含有特殊字符可以使用name属性。建议bean取名时,第一个字母小写。
class属性说明我们要交给Spring容器来管理的bean,配置以后,这个bean就会由Spring容器来创建,我们用到该bean时,只需要用getBean("bean名称")方法从Spring容器来获取。
beans.xml
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <bean id="personService" class="xjj.service.impl.PersonServiceBean"></bean></beans>
PersonServiceBean.java 实现类
package xjj.service.impl;import xjj.service.PersonService;public class PersonServiceBean implements PersonService {@Overridepublic void save(){System.out.println("我是save()方法");}}
PersonService.java,从PersonServiceBean.java抽取的接口
package xjj.service;public interface PersonService {public abstract void save();}
建一个Java工程,将相应代码粘贴即可~
结果:
- Spring2.5学习1.1_bean配置及其Spring容器的实例化
- Spring2.5学习1.4_bean的作用域及其实例化时期
- Spring2.5学习1.2_模拟Spring容器对bean进行实例化
- spring的学习小结6_bean的生命周期
- Spring入门_bean配置与注解实现
- spring security3.x学习(25)_bean配置跑spring security(mysql数据库)
- spring security3.x学习(25)_bean配置跑spring security(mysql数据库)
- spring2.5.6学习笔记五:Spring的三种实例化Bean的方式
- 基于Java的Spring容器配置一(AnnotationConfigApplicationContext实例化Spring容器)
- 6.Spring学习笔记_Bean之间的关系 (by尚硅谷_佟刚)
- 7.Spring学习笔记_Bean的作用域(by尚硅谷_佟刚)
- Spring MVC 学习笔记(一) 基于spring2.5的纯xml配置
- Spring MVC 学习笔记(一) 基于spring2.5的纯xml配置
- spring2.5+hibernate基于xml配置的实例
- Spring MVC入门学习教程及其配置实例
- 实例化Spring容器
- Spring2.5学习1.3_三种实例化bean的方式
- 常用实例化Spring容器的方法
- springMVC框架结构
- unity商店demo学习:跑酷游戏
- ImportError: No module named pysqlite2
- easyui tree 实现类似ztree的数据格式
- OC反射机制
- Spring2.5学习1.1_bean配置及其Spring容器的实例化
- IBM UrbanCode Deploy的可伸缩部署
- 绿色软件有什么特征?
- 数据库事务中获取自增ID
- (编程训练)再回首,数据结构——顺序表上的编程训练
- PHP 类的静态成员变量和普通成员变量对比
- MFC六大关键技术之仿真学习笔记(一)
- spring mvc 上传时 org.apache.catalina.connector.RequestFacade cannot be cast to org.springframework
- 【swift】15-0528 函数参数