`
wiselyman
  • 浏览: 2094080 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
博客专栏
Group-logo
点睛Spring4.1
浏览量:82349
74ae1471-94c5-3ae2-b227-779326b57435
点睛Spring MVC4...
浏览量:130807
社区版块
存档分类
最新评论

12点睛Spring4.1-Spring Aware

 
阅读更多

12.1 Aware

  • 我们设计的准则是解耦,这就意味着我们不能对Spring的IoC容器有直接的依赖,但是我们还是想我们的bean能识别容器的资源;
  • 使用aware能让我们在应用的任意位置获得spring容器的资源;
  • 我们通过实现aware接口来识别spring容器的资源;
  • Spring包含的aware有:
    • BeanNameAware
    • BeanFactoryAware
    • ApplicationContextAware
    • MessageSourceAware
    • ApplicationEventPublisherAware
    • ResourceLoaderAware
  • 实现ApplicationContextAware接口,可识别所有的资源,但最好是你用到什么就使用什么;
  • 这也就意味着我们就耦合到了spring框架上了,没有spring框架你的代码将无法执行;

12.2 示例

12.2.1 新建演示bean

package com.wisely.aware;

import org.springframework.beans.factory.BeanNameAware;
import org.springframework.context.ResourceLoaderAware;
import org.springframework.core.io.ResourceLoader;
import org.springframework.stereotype.Component;
@Component
public class DemoBean implements BeanNameAware,ResourceLoaderAware{
    private String name;
    private ResourceLoader loader;

    //BeanNameAware接口的方法
    public void setBeanName(String beanName) {
        this.name = beanName;

    }

    //ResourceLoaderAware接口的的方法
    public void setResourceLoader(ResourceLoader resourceLoader) {
        this.loader = resourceLoader;

    }

    public String getName() {
        return name;
    }


    public ResourceLoader getLoader() {
        return loader;
    }

}

12.2.2 新建演示用文件info.txt

jhkljhlkjhlkj
111111111111

12.2.3 测试

package com.wisely.aware;

import java.io.IOException;

import org.apache.commons.io.IOUtils;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.core.io.Resource;
import org.springframework.core.io.ResourceLoader;

public class Main {

    public static void main(String[] args) throws IOException {
        AnnotationConfigApplicationContext context =
                new AnnotationConfigApplicationContext("com.wisely.aware");
        DemoBean db = context.getBean(DemoBean.class);
        System.out.println(db.getName());
        ResourceLoader rl = db.getLoader();
        Resource r = rl.getResource("classpath:com/wisely/aware/info.txt");
        System.out.println(IOUtils.toString(r.getInputStream()));
        context.close();
    }

}

输出结果

demoBean
jhkljhlkjhlkj
111111111111

新书推荐《JavaEE开发的颠覆者: Spring Boot实战》,涵盖Spring 4.x、Spring MVC 4.x、Spring Boot企业开发实战。

 

京东地址:http://item.jd.com/11894632.html

当当地址:http://product.dangdang.com/23926195.html

亚马逊地址:http://www.amazon.cn/图书/dp/B01D5ZBFUK/ref=zg_bsnr_663834051_6 

淘宝地址:https://item.taobao.com/item.htm?id=528426235744&ns=1&abbucket=8#detail

 

 

 

或自己在京东、淘宝、亚马逊、当当、互动出版社搜索自选。

 


0
0
分享到:
评论

相关推荐

    spring-aware接口实现与bean作用域(spring多容器层面)

    在Spring框架中,`Spring-Aware`接口是一个重要的概念,它允许我们与Spring的应用上下文(ApplicationContext)进行交互,从而获取或操作由Spring管理的Bean。`ApplicationContextAware`是其中的一个典型接口,当...

    CVPR2022 Image Dehazing Transformer with Transmission-Aware 3D代码

    CVPR 2022 Image Dehazing Transformer with Transmission-Aware 3D Position Embedding 源代码,很有学习价值,大佬任文琦团队的最新去雾杰作,从3D定位的角度去思考去雾。CVPR 2022 Image Dehazing Transformer ...

    Interest-aware Message-Passing GCN for Recommendat.md

    Interest-aware Message-Passing GCN for Recommendat.md

    aware-extend-spring-cloud-feign-1.0.0.jar

    javaweb/javaee 常用jar包,亲测可用,若需其他版本其他jar包请留言我看到后会上传分享

    aware-extend-spring-cloud-feign-1.0.0-javadoc.jar

    javaweb/javaee 常用jar包,亲测可用,若需其他版本其他jar包请留言我看到后会上传分享

    aware-extend-spring-cloud-feign-1.0.0-sources.jar

    javaweb/javaee 常用jar包,亲测可用,若需其他版本其他jar包请留言我看到后会上传分享

    Wi-Fi_Aware_Specification_v3.2

    Wi-Fi Aware™ Specification Version 3.2 Wi-Fi Aware™ Specification Version 3.2 是 Wi-Fi Alliance 发布的一份技术规范文档,主要介绍 Wi-Fi Aware™ 技术的详细规范和实现细节。下面是该规范的详细解读: ...

    aware-run-hibernate-spring-boot-starter-1.0.0.jar

    javaweb/javaee 常用jar包,亲测可用,若需其他版本其他jar包请留言我看到后会上传分享

    aware-run-doc-spring-boot-starter-1.0.0.jar

    javaweb/javaee 常用jar包,亲测可用,若需其他版本其他jar包请留言我看到后会上传分享

    aware-run-common-web-spring-boot-starter-1.0.0.jar

    javaweb/javaee 常用jar包,亲测可用,若需其他版本其他jar包请留言我看到后会上传分享

    Spring Reference - Core Technologies.pdf

    本知识点根据提供的Spring官方文档内容,详细解释了Spring核心框架中的一些关键知识点。 1. IoC容器 控制反转(Inversion of Control,简称IoC)是Spring框架的核心理念,它通过依赖注入(Dependency Injection,...

    Spring特性——Aware感知特性

    下面我们将深入探讨Spring的Aware感知特性及其相关知识点。 1. **BeanFactoryAware** BeanFactoryAware接口提供了一个方法`setBeanFactory(BeanFactory beanFactory)`,允许bean获取到当前的BeanFactory实例。这样...

    spring-framework-2.5.4.zip

    Spring的AOP模块提供了声明式事务管理,允许开发者定义横切关注点,如日志、安全、缓存等,这些关注点可以在多个业务方法上统一处理。2.5.4版本对AOP的性能进行了优化,提升了处理速度。 3. **Spring MVC** ...

    springboot学习思维笔记.xmind

    Spring Aware BeanNameAware BeanFactoryAware ApplicationContextAware MessageSourceAware ApplicationEventPublisherAware ResourceLoaderAware 多线程 计划任务 cron fixDelay ...

    spring-framework-4-reference 中文文档

    ### Spring Framework 4 参考文档关键知识点概览 #### 一、Spring Framework 总览 **1. 开始** - **Spring Framework**:一个轻量级且全面的Java应用开发框架,提供了完整的解决方案来简化企业级应用程序的开发...

    Seam Carving for Content-Aware Image Resizing(基于内容缩放图片的方法)

    2007年Shai Avidan 和Ariel Shamir论文《Seam Carving for Content-Aware Image Resizing》所提出方法的Matlab代码实现和作者的论文。 效果非常炫,而且代码不长

    Context-aware-Visual-Tracking.zip_Aware_Context-aware_context aw

    《Context-aware Visual Tracking》是2009年发表在Pattern Analysis and Machine Intelligence (PAMI) 上的一篇重要论文,该文深入探讨了上下文感知在视觉跟踪中的应用。上下文感知(Context-aware)技术在计算机...

    spring-core.pdf

    - **1.6.3 其他Aware接口**: Spring还提供了其他的一些Aware接口,如`EnvironmentAware`等,使得Bean能够获取更多的上下文信息。 以上是对《spring-core.pdf》文档中关于Spring IoC容器的核心内容的总结。通过理解...

    spring-framework-3.1.0源码

    Spring 3.1.0的AOP支持允许开发者编写横切关注点,如日志、事务管理等,这些关注点可以被“织入”到目标对象中,实现代码的解耦。通过@Aspect注解和Pointcut表达式,AOP的使用变得更加直观和便捷。 3. **模块化...

Global site tag (gtag.js) - Google Analytics