Spring Aware接口使用案例如何深入解析?
- 内容介绍
- 文章标签
- 相关推荐
本文共计492个文字,预计阅读时间需要2分钟。
`Aware`接口是Spring中的一种标记接口,用于表示XXX能够感知XXX。通俗来说,就是:
如果在某个类中想使用Spring的一些功能,可以通过实现XXXAware接口来告知Spring。这样Spring就知道这个类需要它的一些服务了,并会提供相应的支持。
Aware接口是一个标记接口
XXXAare在Spring中表示对XXX可以感知,通俗点解释就是:如果在某个类里面想要使用Spring的一些东西,就可以通过实现XXXAware接口告诉Spring,Spring看到后就会送过来,而接受的方式是通过实现接口唯一的方法setXXX.比如ApplicationContextAware
ApplicationContextAware使用
编写SpringAware实现ApplicationContext接口
package com.rookie.bigdata.aware; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; /** * @author rookie * @version 1.0 * @date 2020/3/21 22:58 */ public class SpringAware implements ApplicationContextAware { private ApplicationContext applicationContext; //Spring容器会将ApplicationContext对象传入过来 @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { System.out.println("传入的IOC容器applicationContext = [" + applicationContext + "]"); this.applicationContext = applicationContext; } public ApplicationContext getApplicationContext() { return applicationContext; } }
User实体类
package com.rookie.bigdata.domain; public class User { private String username; private String address; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } }
spring-aware.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="www.springframework.org/schema/beans" xmlns:xsi="www.w3.org/2001/XMLSchema-instance" xmlns:aop="www.springframework.org/schema/aop" xmlns:tx="www.springframework.org/schema/tx" xmlns:context="www.springframework.org/schema/context" xsi:schemaLocation=" www.springframework.org/schema/beans www.springframework.org/schema/beans/spring-beans.xsd www.springframework.org/schema/tx www.springframework.org/schema/tx/spring-tx.xsd www.springframework.org/schema/aop www.springframework.org/schema/aop/spring-aop.xsd www.springframework.org/schema/context www.springframework.org/schema/context/spring-context.xsd"> <bean id="user" class="com.rookie.bigdata.domain.User"> <property name="username" value="张三"></property> <property name="address" value="北京"></property> </bean> <bean id="springAware" class="com.rookie.bigdata.aware.SpringAware"></bean> </beans>
测试类
@Test public void test1(){ ApplicationContext applicationContext = new ClassPathXmlApplicationContext("/aware/spring-aware.xml"); // User user = (User) applicationContext.getBean("user"); // System.out.println(user); SpringAware springAware = (SpringAware) applicationContext.getBean("springAware"); ApplicationContext applicationContext1 = springAware.getApplicationContext(); User user = (User) applicationContext1.getBean("user"); System.out.println(user); }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。
本文共计492个文字,预计阅读时间需要2分钟。
`Aware`接口是Spring中的一种标记接口,用于表示XXX能够感知XXX。通俗来说,就是:
如果在某个类中想使用Spring的一些功能,可以通过实现XXXAware接口来告知Spring。这样Spring就知道这个类需要它的一些服务了,并会提供相应的支持。
Aware接口是一个标记接口
XXXAare在Spring中表示对XXX可以感知,通俗点解释就是:如果在某个类里面想要使用Spring的一些东西,就可以通过实现XXXAware接口告诉Spring,Spring看到后就会送过来,而接受的方式是通过实现接口唯一的方法setXXX.比如ApplicationContextAware
ApplicationContextAware使用
编写SpringAware实现ApplicationContext接口
package com.rookie.bigdata.aware; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; /** * @author rookie * @version 1.0 * @date 2020/3/21 22:58 */ public class SpringAware implements ApplicationContextAware { private ApplicationContext applicationContext; //Spring容器会将ApplicationContext对象传入过来 @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { System.out.println("传入的IOC容器applicationContext = [" + applicationContext + "]"); this.applicationContext = applicationContext; } public ApplicationContext getApplicationContext() { return applicationContext; } }
User实体类
package com.rookie.bigdata.domain; public class User { private String username; private String address; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } }
spring-aware.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="www.springframework.org/schema/beans" xmlns:xsi="www.w3.org/2001/XMLSchema-instance" xmlns:aop="www.springframework.org/schema/aop" xmlns:tx="www.springframework.org/schema/tx" xmlns:context="www.springframework.org/schema/context" xsi:schemaLocation=" www.springframework.org/schema/beans www.springframework.org/schema/beans/spring-beans.xsd www.springframework.org/schema/tx www.springframework.org/schema/tx/spring-tx.xsd www.springframework.org/schema/aop www.springframework.org/schema/aop/spring-aop.xsd www.springframework.org/schema/context www.springframework.org/schema/context/spring-context.xsd"> <bean id="user" class="com.rookie.bigdata.domain.User"> <property name="username" value="张三"></property> <property name="address" value="北京"></property> </bean> <bean id="springAware" class="com.rookie.bigdata.aware.SpringAware"></bean> </beans>
测试类
@Test public void test1(){ ApplicationContext applicationContext = new ClassPathXmlApplicationContext("/aware/spring-aware.xml"); // User user = (User) applicationContext.getBean("user"); // System.out.println(user); SpringAware springAware = (SpringAware) applicationContext.getBean("springAware"); ApplicationContext applicationContext1 = springAware.getApplicationContext(); User user = (User) applicationContext1.getBean("user"); System.out.println(user); }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。

