什么是spring的内部bean spring bean属性有哪些,属性有什么作用
什么是spring的内部bean
在Spring框架中,一个bean仅用于一个特定的属性,这是提醒其声明为一个内部bean。内部bean支持setter注入“property”和构造器注入"constructor-arg“。
下面来看看一个详细的例子,演示使用 Spring 内部 bean 。
package com.yiibai.common
public class Customer
{
private Person person
public Customer(Person person) {
this.person = person
}
public void setPerson(Person person) {
this.person = person
}
@Override
public String toString() {
return "Customer [person=" person "]"
}
}
package com.yiibai.common
public class Person
{
private String name
private String address
private int age
//getter and setter methods
@Override
public String toString() {
return "Person [address=" address ",
age=" age ", name=" name "]"
}
}
很多时候,可以使用 ref 属性来引用“Person” bean到“Customer” Bean,person的属性如下:
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
在一般情况下,引用这样也没有问题,但由于“yiibai” persion bean 只用于Customer bean,这是更好地声明 “yiibai” person 作为一个内部 bean,如下:
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
内部 bean 也支持构造器注入如下:
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
注意:
id 或 name 值在bean类是没有必要以一个内部 bean 呈现,它会简单地忽略Spring容器。
执行结果:
package com.yiibai.common
import org.springframework.context.ApplicationContext
import org.springframework.context.support.ClassPathXmlApplicationContext
public class App
{
public static void main( String[] args )
{
ApplicationContext context =
new ClassPathXmlApplicationContext(new String[] {"Spring-Customer.xml"})
Customer cust = (Customer)context.getBean("CustomerBean")
System.out.println(cust)
}
}
输出结果:
Customer [person=Person [address=address1, age=28, name=yiibai]]
spring bean属性有哪些,属性有什么作用
Spring支持的bean作用域
singleton
容器只为bean创建一个实例。
客户端每次请求都返回一个共享实例。
客户端不能控制bean的生命周期。
由容器控制bean的产生,销毁。
prototype
每次请求bean时。都会创建一个新的实例。(结合Struts每次请求都产生一个新的action的,所以结合Struts的使用,就用这个。)
客户端每次请求(调用getBean(“”)方法)都产生一个新的实例。
实例化后,完全交给客户端代码管理,容器不再追踪其生命周期。并不知道bean何时销毁。
request
用于web应用,bean在一次请求中有效。
session
用于web应用,bean在整个会话中有效。
spring 的bean怎么配置
在Spring中,那些组成你应用程序的主体(backbone)及由Spring IoC容器所管理的对象,被称之为bean。 简单地讲,bean就是由Spring容器初始化、装配及管理的对象,除此之外,bean就与应用程序中的其他对象没有什么区别了。 而bean定义以及bean相互间的依赖关系将通过配置元数据来描述。
spring进行bean的管理,bean是单例的还是多实例的
Spring Bean也称为组件,任何一个JavaBean类都可以作为Spring Bean,但Spring Bean并不要求一定要严格遵循Java Bean规范。Spring中的Bean可以是任意的Java对象,如数据库连接池。
Spring Bean通过Spring容器对其进行实例化、值的注入,以及依赖关系注入等方面管理,还需要对Bean进行定义,即将它定义为一个Spring Bean。