六.Spring的Bean管理-实例化的方式详解
2017-09-13 08:05
176 查看
写在前面,Bean的实例化,也就产生Bean的对象.
测试方法:
测试方法:
测试代码:
Bean 起个名字. 在约束中采用 ID 的约束:唯一.必须以字母开始, 可以使用字母、 数字、 连字符、下划线、 句话、 冒号 id:不能出现特殊字符.
name属性
Bean 起个名字. 没有采用 ID 的约束. name:出现特殊字符.如果没有 id 的话 , name 可以当做 id 使用,也就是说在使用
* 整合 struts1 的时候:
scope属性
Bean 的作用范围.singleton和prototype常用.
singleton :默认值, 单例的.
prototype :多例的.
request :WEB 项目中,Spring 创建一个 Bean 的对象,将对象存入到 request 域中.
session :WEB 项目中,Spring 创建一个 Bean 的对象,将对象存入到 session 域中.
globalSession :WEB 项目中,应用在 Porlet 环境.如果没有 Porlet 环境那么 globalSession 相当于 session..(有点类似同一登录,但是现在的做法都是用用redis缓存来做.)
1.Spring中XML 的方式管理Bean(三种)
A.无参数的构造方法的方式 (主要使用)
注意,如果Bean没有无参构造方法,使用该方法会报错.package cn.com.yves.spring; public class User { private String name; // 注意: 不写构造方法,默认就是无参构造 public String getName() { return name; } public void setName(String name) { this.name = name; } }
<bean id="user" class="cn.com.yves.spring.User"></bean>
测试方法:
@Test public void testGeneral() { // 1 加载spring配置文件,根据配置创建对象 ApplicationContext context = new ClassPathXmlApplicationContext("Application.xml"); // 2 配置文件中的id获取创建的对象 User user = (User) context.getBean("user"); System.out.println(user); }
B.静态工厂实例化的方式
package cn.com.yves.spring; public class User2 { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }
package cn.com.yves.spring; public class BeanFactory { public static User2 getUser2() { return new User2(); } }
<bean id="user2" class="cn.com.yves.spring.BeanFactory" factory-method="getUser2"></bean>
测试方法:
@Test public void testStatic() { // 1 加载spring配置文件,根据配置创建对象 ApplicationContext context = new ClassPathXmlApplicationContext("Application.xml"); // 2 配置文件中的id获取创建的对象 User2 user = (User2) context.getBean("user2"); System.out.println(user); }
C.实例工厂实例化的方式
package cn.com.yves.spring; public class User3 { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }
<bean id="beanFactory3" class="cn.com.yves.spring.BeanFactory3" ></bean> <bean id="user3" factory-bean="beanFactory3" factory-method="getUser3"></bean>
测试代码:
@Test public void testGeneralStatic() { // 1 加载spring配置文件,根据配置创建对象 ApplicationContext context = new ClassPathXmlApplicationContext("Application.xml"); // 2 配置文件中的id获取创建的对象 User3 user = (User3) context.getBean("user3"); System.out.println(user); }
Bean标签常用属性
id属性Bean 起个名字. 在约束中采用 ID 的约束:唯一.必须以字母开始, 可以使用字母、 数字、 连字符、下划线、 句话、 冒号 id:不能出现特殊字符.
<bean id="user">
name属性
Bean 起个名字. 没有采用 ID 的约束. name:出现特殊字符.如果没有 id 的话 , name 可以当做 id 使用,也就是说在使用
getBean(name)方法效果和
getBean(id)一样.
* 整合 struts1 的时候:
<bean name="/loginAction" >
scope属性
Bean 的作用范围.singleton和prototype常用.
singleton :默认值, 单例的.
prototype :多例的.
request :WEB 项目中,Spring 创建一个 Bean 的对象,将对象存入到 request 域中.
session :WEB 项目中,Spring 创建一个 Bean 的对象,将对象存入到 session 域中.
globalSession :WEB 项目中,应用在 Porlet 环境.如果没有 Porlet 环境那么 globalSession 相当于 session..(有点类似同一登录,但是现在的做法都是用用redis缓存来做.)
<bean id="user" scope="prototype">
2.Spring中注解方式管理Bean
相关文章推荐
- Spring的bean管理(xml方式)之Bean实例化的方式
- 详解Spring中bean实例化的三种方式
- spring三种实例化Bean的方式和管理Bean的作用域和Bean的生命周期
- Spring中实例化bean的四种方式详解
- Sping学习笔记(2)----实例化Bean的三种方式
- 详解Spring-bean的循环依赖以及解决方式
- Spring三种实例化bean的方式
- Spring 实例化bean的三种方式:
- day02_12/12/2016_bean的实例化之定义多个配置方式
- Spring:三种实例化bean的方式
- 使用Spring注解方式管理事务与传播行为详解
- 一步一步深入spring(2)-三种方式来实例化bean
- spring三种实例化bean的方式
- spring IOC容器实例化Bean的方式与RequestContextListener应用
- 如何在Spring中使用编码方式动态配置Bean详解
- Spring管理Bean的三种创建方式
- JAVAWEB开发之权限管理(一)——权限管理详解(权限管理原理以及方案)、不使用权限框架的原始授权方式详解
- 三种实例化bean的方式
- 实例化bean的三种方式
- Spring 声明式事务管理----基于TransactionProxyFactoryBean的方式