spring 核心技术
2015-10-21 23:38
281 查看
spring 核心技术
1--控制反转或反向控制 (inversion control IOC)
2--手动装配
A:Bean工厂
B:应用上下文(ApplicationContext)
例:
1--定义一个Bean叫Person, 属性: 姓名, 年龄, 工资. 使用spring IOC容器将各个属性值注入实例中
2--Person中增加一个User属性user和user2
1--控制反转或反向控制 (inversion control IOC)
当一个对象需要另一个对象时, 传统设计过程中, 需要通过调用者来创建被调用着的对象实例 但是在spring中, 创建被调用者的工作不再有调用者来完成,而是由spring IOC容器完成. DI(dependency injection) 依赖注入 就是组件之间的依赖关系有容器在运行期决定,形象的来说, 就是由容器动态的将某种依赖关系注入到组件中 容器就是 .xml配置文件 通过使用DI,当组件之间关系发生变化时,我们只需要修改系统中相关配置文件,不需要改动代码,这就减少了程序维护量, 又提高了程序的可重用性
2--手动装配
A:Bean工厂
使用org.springframework.beans.factory.BeanFactory接口来获得Bean对象实例 在spring中有很多BeanFactory接口的实现, 但最常用的是org.springframework.beans.factory.xml.XmlBeanFactory, 通过XmlBeanFactory类可以从xml配置文件中读取配置文件中Bean的装配信息, 并在spring容器中建立相应的javaBean对象实例,并返回该实例 要想建立一个XmlBeanFactory对象实例, 需要将配置文件通过FileSystemResource对象传入XmlBeanFactory类的构造器 并通过BeanFactory的getBean方法获取Bean实例 eg: 装配applicationContext.xml文件 BeanFactory factory = new XmlBeanFactory(new FileSystemResource("applicationContext.xml")); 获得被装配的HelloWorld对象实例 HelloWorld helloworld = (HelloWorld)factory.getBean("helloworld");
B:应用上下文(ApplicationContext)
通过org.springframework.context.ApplicationContext接口来装配Bean 在spring中有两种方式实现: FileSystemXmlApplicationContext:通过绝对或相对路径指定xml配置文件 ClassPathXmlApplicationContext: 从路径中搜索xml配置文件
例:
1--定义一个Bean叫Person, 属性: 姓名, 年龄, 工资. 使用spring IOC容器将各个属性值注入实例中
<bean id="person" class="com.spring.di01.Person"> <property name="name" value="张三"></property> <property name="age" value="11"></property> <property name="salary" value="10086"></property> </bean>
2--Person中增加一个User属性user和user2
<bean id="user" class="com.spring.di01.User"> <property name="id" value="2"></property> <property name="username" value="mary"></property> <property name="password"> <value>123123</value> </property> </bean> <bean id="person" class="com.spring.di01.Person"> <property name="name" value="张三"></property> <property name="age" value="11"></property> <property name="salary" value="10086"></property> <!-- 外部注入 --> <property name="user"> <ref bean="user"></ref> </property> <!-- 内部注入 --> <property name="user2"> <bean class="com.spring.di01.User"> <property name="id" value="22"></property> <property name="username" value="mary2"></property> </bean> </property> </bean>
相关文章推荐
- Spring的特点
- Java中的内存泄漏
- 147_多线程(线程间通信-生产者消费者JDK5.0升级版)
- MyEclipse发布项目时报'Publishi to Tomat ...'has encountered a problem.Could not publish to the server错误
- 大龄屌丝自学笔记--Java零基础到菜鸟--035
- java6 新特新
- java获取项目classPath路径
- Class与java反射机制
- java5 新特性
- struts技术有什么优点、好处?
- JAVA多线程--信号量(Semaphore)
- 深入理解Java的接口和抽象类
- Java记录 -42- Java Collection
- Java 7 的7个新特性
- struts2常用标签详解-在项目中使用struts2标签
- eclipse/myeclipse安装svn插件
- Java 基础之认识 Annotation
- 10007---SpringMVC 使用 POJO 对象绑定请求参数值,解决中文乱码
- 构建Gradle范例项目之构建Java项目
- JAVA将Excel中的报表导出为图片格式(一)问题背景