package com.svse.entity;
import java.io.Serializable;
import java.util.List;
public class AdminEntity implements Serializable {
private String college;
private String tel;
private List ar;
public String getCollege() {
return college;
}
public void setCollege(String college) {
this.college = college;
}
public String getTel() {
return tel;
}
public void setTel(String tel) {
this.tel = tel;
}
public List getAr() {
return ar;
}
public void setAr(List ar) {
this.ar = ar;
}
}
package com.svse.entity;
import java.io.Serializable;
public class UserEntity implements Serializable {
private int id;
private String name;
private AdminEntity admin;
public UserEntity(){}
public UserEntity(int id ,String name,AdminEntity admin){
this.id = id;
this.name = name;
this.admin = admin;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public AdminEntity getAdmin() {
return admin;
}
public void setAdmin(AdminEntity admin) {
this.admin = admin;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<!-- 1、解释:AdminEntity adminEntity = new AdminEntity(); -->
<bean id="adminEntity" class="com.svse.entity.AdminEntity">
<!-- AdminEntity 类中有个属性为:college 的,赋值为:value="" -->
<property name="college" value="湖北国土资源职业学院"></property>
<property name="tel" value="1533*******"></property>
<!-- 为集合赋值List -->
<property name="ar">
<list>
<value>上网</value>
<value>吃饭</value>
<value>睡觉</value>
</list>
</property>
</bean>
<!-- 解释:==UserEntity userEntity = new UserEntity(); -->
<bean id="userEntity" class="com.svse.entity.UserEntity">
<property name="id" value="1"></property>
<property name="name">
<value>小王八蛋</value>
</property>
<!-- 属性名:admin,为其依赖注入 adminEntity== admin = new AdminEntity(); 并进行赋值 -->
<property name="admin" ref="adminEntity"></property>
</bean>
<!--
2、bean 中的属性介绍: abstract="true" 设置该bean对应的类为抽象类,不能直接进行使用
parent="id标识,继承的父类"
-->
<!--
===========================定义UserEntity 为抽象类==========================
-->
<bean id="userEntity1" class="com.svse.entity.UserEntity"
abstract="true">
<property name="id" value="123"></property>
<property name="name" value="谢逊"></property>
</bean>
<!--
通过parent这个属性集成:抽象类(根据ID标识找到需要继承的类),继承了对应类中的属性,也可以随时的根据自己的需要更改相关的属性
不需要更改的可以直接的进行引用;
-->
<bean id="xx" parent="userEntity1">
<property name="id" value="456"></property>
</bean>
<!--============================================================== -->
<!-- 3、bean中属性:autowire的用法 ,以及null值的设置-->
<!--
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-->
<bean id="admin" class="com.svse.entity.AdminEntity">
<!-- 将college属性值设为:"" -->
<property name="college">
<value></value>
</property>
<!-- 将tel的属性值设为:null -->
<property name="tel">
<null />
</property>
<property name="ar">
<list>
<value>八嘎</value>
<value>九噶</value>
</list>
</property>
</bean>
<bean id="userEntity3" class="com.svse.entity.UserEntity"
autowire="byName">
<property name="id" value="3"></property>
<property name="name">
<value>小红</value>
</property>
<!--
该实体下包含一个对象名称为:admin的对象,设置了autowire 然后自动的寻找到id名为admin的bean,实现自动匹配
-->
</bean>
<!--
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-->
<!-- 4、bean的name属性、depends-on="标识ID名" -->
<!--
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-->
<!--
bean中的ID 是唯一标识,而name 能多名称标识,相当于给同一个bean起多个名称,可以根据任意的一个别名获取到当前
的bean,命名方式如:name="/user,yy,xx,aa" , id="xx"
代码中可以根据任意你喜欢的名称(user,yy,xx,aa)获取,而 id只能根据xx获取; depends-on: 通过ID
指定依赖的对象,被依赖者执行之后才会执行本身;例如:处理数据之前必须先链接数据库;
-->
<!--
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-->
<!-- 5、通过xml文件给实体中构造方法赋值 传递参数值,以及传递实体对象 -->
<!--
=============================================================================================
-->
<bean id="adminEntity1" class="com.svse.entity.AdminEntity">
<property name="college" value="工业大学"></property>
<property name="tel">
<value></value>
</property>
<property name="ar">
<null />
</property>
</bean>
<bean id="userEntity4" class="com.svse.entity.UserEntity">
<constructor-arg index="0" value="1"></constructor-arg>
<constructor-arg index="1" value="大奖人"></constructor-arg>
<constructor-arg index="2" ref="adminEntity1"></constructor-arg>
</bean>
<!--
=============================================================================================
-->
<!-- 6、BeanFactory 的作用域 ,scope属性-->
<!--
scope="singleton" : 单例模式 ,查询一次后数据存入内存,然后常驻内存,再次查询的时候仍然是内存中的数据,
数据没有和数据库同步; scope="prototype" :代理模式 , 只负责封装数据,能保证页面数据和数据库的同步
-->
<bean id="adminEntity6" class="com.svse.entity.AdminEntity"></bean>
<bean id="userEntity6" class="com.svse.entity.UserEntity" scope="singleton"></bean>
<!-- 單例模式下:
UserEntity user1 = app.getBean("userEntity6",UserEntity.class);
UserEntity user2= app.getBean("userEntity6",UserEntity.class);
此時:user1==user2 : true
-->
<bean id="userEntity7" class="com.svse.entity.UserEntity" scope="prototype"></bean>
<!-- 代理模式下:
UserEntity user1 = app.getBean("userEntity7",UserEntity.class);
UserEntity user2= app.getBean("userEntity7",UserEntity.class);
此時:user1!=user2 : false
-->
<!-- ==================================================================================== -->
</beans>
分享到:
相关推荐
开始时,通过`AnnotationConfigApplicationContext`类创建一个上下文实例,通常传入一个或多个配置类(`annotatedClasses`),这些类带有@Configuration注解,用于定义Bean的配置。 2. **刷新上下文**: 调用`...
6. **Bean的作用域**:默认情况下,Spring Bean的作用域是Singleton,意味着在整个应用上下文中只有一个实例。如果将Bean设置为Prototype,那么每次请求都会创建一个新的实例,可能导致重复执行。 7. **XML配置中的...
在Spring MVC和Spring框架的整合应用中,常常会遇到两套上下文的问题。Spring MVC是Spring框架的一个模块,主要用于处理Web请求,而Spring则提供了一个更广泛的IoC(Inversion of Control,控制反转)和AOP(Aspect ...
ApplicationContextInitializer 是 Spring 上下文初始化类,负责加载配置文件和注册 Bean。通过查看源码,我们可以发现 Spring 自动加载配置文件的代码。 SpringApplication 运行 SpringApplication 的 run 方法是...
在Spring框架中,Spring Context上下文是核心组件之一,它为开发者提供了强大的依赖注入(Dependency Injection,简称DI)和控制反转(Inversion of Control,简称IoC)功能。本篇文章将深入探讨如何利用Spring ...
`BeanFactoryAware`接口使得Bean可以被注入`BeanFactory`,而`ApplicationListener`接口则可以让Bean监听到应用上下文的刷新事件,从而在合适的时机执行动态注册逻辑。 ```java public class BeanFactoryAwareBean ...
在这个测试用例中,`@SpringBootTest`注解启动了一个应用上下文,`@Autowired`注解注入了`MessageService` Bean,然后在`testMessage`方法中验证了Bean的正确配置和功能。 总之,Spring的Bean工厂准备工作涉及Bean...
4. **Spring的应用上下文(ApplicationContext)**:ApplicationContext是Spring的主要接口之一,它提供了获取Bean、处理消息和事件等功能,是Spring应用中的主要入口点。 5. **构造注入(constructor injection)*...
在 Java 应用中使用 Spring,我们需要创建一个 Spring 上下文(ApplicationContext)来加载 Bean 的定义。这个上下文将负责创建和管理 Bean,以及执行依赖注入。通常,我们可以使用 `ClassPathXmlApplicationContext...
在Spring框架中,ApplicationContext...了解Spring应用上下文的生命周期有助于我们更好地管理和控制Bean的行为,以及优化应用的性能和稳定性。在实际开发中,理解这些生命周期阶段可以帮助我们更有效地调试和解决问题。
在提交任务时,可以将bean作为参数传递,或者在任务内部使用`ApplicationContextAware`接口获取应用上下文,从而获取bean。 4. **ApplicationContextAware**:让线程处理类实现`ApplicationContextAware`接口,...
1. **ApplicationContext**:这是Spring提供的一个接口,代表了Spring的上下文,包含了bean的定义和bean的实例。我们可以使用`ApplicationContext`来获取bean。例如: ```java ApplicationContext context = new ...
2. `AsyncProxyBeanPostProcessor`:此处理器可能用于创建代理对象,确保异步初始化方法在正确的上下文中执行。代理对象能够拦截调用并将其转换为异步操作。 3. `BeanDefinitionUtil`:这个工具类可能包含了对bean...
通过Spring上下文获取bean的实例对象
它是Spring应用中最常用的上下文接口,通常通过读取XML、Java配置或者注解来初始化ApplicationContext。 Spring的Bean创建过程大致分为以下几个步骤: 1. **配置解析**:Spring会读取配置文件(如XML、Java配置或...
本文将总结 Spring 应用上下文获取 Bean 的常用姿势实例,并对其实现方法和操作注意事项进行详细的分析和讲解。 一、从应用程序上下文中获取 Bean 在 Spring 框架中,有多种方式可以获取 Bean 对象。下面我们将...
Spring Boot 使用上下文获取 Bean 在 Spring Boot 项目中,有时候需要在 Spring 容器加载前就注入 Bean,这时候如果直接使用 @Autowire 注解,将会出现控制针异常。为了解决这个问题,我们可以创建一个 ...
首先,我们需要在类中定义一个 WebApplicationContext 变量,以便获取应用程序的上下文环境变量。然后,我们可以使用 ctx.getBean() 方法来获取指定名称的 Bean 对象。 ```java public class BaseDispatchAction ...
1. 通过`ClassPathXmlApplicationContext`或`FileSystemXmlApplicationContext`加载XML配置文件创建上下文。在Spring Boot应用中,通常使用`AnnotationConfigApplicationContext`加载基于注解的配置。 2. 如果你的类...
Spring2.0 以后,增加了 session、request、global session 三种专用于 Web 应用程序上下文的 Bean。因此,默认情况下 Spring2.0 现在有五种类型的 Bean。当然,Spring2.0对 Bean 的类型的设计进行了重构,并设计出...