Spring Aware标记接口使用案例解析

 更新时间:2020年04月24日 11:51:03   作者:海之浪子  
这篇文章主要介绍了Spring Aware标记接口使用案例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

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="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="
          http://www.springframework.org/schema/beans
          http://www.springframework.org/schema/beans/spring-beans.xsd
          http://www.springframework.org/schema/tx
          http://www.springframework.org/schema/tx/spring-tx.xsd
          http://www.springframework.org/schema/aop
          http://www.springframework.org/schema/aop/spring-aop.xsd
          http://www.springframework.org/schema/context
          http://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);
  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Spring boot 跳转到jsp页面的实现方法

    Spring boot 跳转到jsp页面的实现方法

    本篇文章主要介绍了Spring boot 跳转到jsp页面的实现方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • 详解Java中的悲观锁与乐观锁

    详解Java中的悲观锁与乐观锁

    乐观锁对应于生活中乐观的人总是想着事情往好的方向发展,悲观锁对应于生活中悲观的人总是想着事情往坏的方向发展.这两种人各有优缺点,不能不以场景而定说一种人好于另外一种人,文中详细介绍了悲观锁与乐观锁,需要的朋友可以参考下
    2021-05-05
  • Java线程安全中的单例模式

    Java线程安全中的单例模式

    这篇文章主要介绍了Java线程安全中的单例模式,需要的朋友可以参考下
    2015-02-02
  • java字符串数组进行大小排序的简单实现

    java字符串数组进行大小排序的简单实现

    下面小编就为大家带来一篇java字符串数组进行大小排序的简单实现。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-09-09
  • SpringMVC中请求参数的获取方式

    SpringMVC中请求参数的获取方式

    这篇文章主要为大家介绍了SpringMVC中请求参数的获取方式,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • Java并发编程之Condition源码分析(推荐)

    Java并发编程之Condition源码分析(推荐)

    这篇文章主要介绍了Java并发编程之Condition源码分析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • Spring Boot ActiveMQ如何设置访问密码

    Spring Boot ActiveMQ如何设置访问密码

    这篇文章主要介绍了Spring Boot ActiveMQ如何设置访问密码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • SpringMVC请求、响应和拦截器的使用实例详解

    SpringMVC请求、响应和拦截器的使用实例详解

    拦截器(Interceptor) 它是一个Spring组件,并由Spring容器管理,并不依赖Tomcat等容器,是可以单独使用的,这篇文章给大家介绍SpringMVC请求、响应和拦截器的使用,感兴趣的朋友一起看看吧
    2024-03-03
  • ElasticSearch学习之Es集群Api操作示例

    ElasticSearch学习之Es集群Api操作示例

    这篇文章主要为大家介绍了ElasticSearch学习之Es集群Api操作示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • mybatis resultmap 如何为对象赋值的调用顺序

    mybatis resultmap 如何为对象赋值的调用顺序

    这篇文章主要介绍了mybatis resultmap 如何为对象赋值的调用顺序,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01

最新评论