Spring系列.Resource接口】的更多相关文章

接口简介 JDK中提供了java.net.URL这个类来用于获取不同种类的资源(根据不同前缀的url可以获取不同种类的资源).但是URL这个类没有获取classpath和ServletContext下的资源的能力.因此Spring提供了Resource接口,用于获取各种资源. spring中的org.springframework.core.io.Resource接口代表着物理存在的任何资源,其继承于org.springframework.core.io.InputStreamSource. S…
Environment 接口介绍 在 Spring 中,Environment 接口主要管理应用程序两个方面的内容:profile 和 properties. profile 可以简单的等同于环境,比如说平时项目中常见的环境有开发(dev).测试(stg)和生产(prod),Spring 启动的时候可以设置激活具体的环境.当然,这个 profile 我们还可以为其赋予很多含义,这个主要看你的业务.比如说,你开发的软件会交付给客户A,也会交付给客户B,那么这个 profile 也可以定义成客户的含…
Resource template = ctx.getResource("classpath:some/resource/path/myTemplate.txt");   //这个得到的是ClassPahResource. Resource template = ctx.getResource("file:///some/resource/path/myTemplate.txt");         //这个得到的是FileSystemResource. Resou…
Spring为了更好的满足各种底层资源的访问需求.设计了一个Resource接口,提供了更强的访问底层资源的能力.Spring框架使用Resource装载各种资源,包括配置文件资源.国际化属性文件资源等.一.Resource接口的主要方法有: boolean exists():资源是否存在. boolean isOpen():资源是否打开. URL getURL():如果底层资源可以表示为URL,该方法返回对应的URL对象. File getFile():如果底层资源对应一个文件,该方法返回对应…
Spring 框架文档(核心篇1和2) Version 5.1.3.RELEASE 最新的, 更新的笔记, 支持的版本和其他主题,独立的发布版本等, 是在Github Wiki 项目维护的. 总览 历史, 设计哲学, 反馈, 入门. 核心 IoC容器, 事件, 资源, 国际化(i18n), 验证, 数据绑定, 类型转化, Spring表达式语言(SpEL), 面向切面编程(AOP). 测试 Mock对象, 测试上下文框架(TestContext framework), Spring MVC 测试…
Resource介绍 编码的时候,除了代码本身,我们还需要对外部的资源进行处理.例如:URL资源.URI资源.File资源.ClassPath相关资源.服务器相关资源(VFS等)等等. 而这些资源的处理是类似而繁琐的,如:打开资源.读取资源.关闭资源. 所以Spring提供了一个专门的接口Resource 用于统一这些底层资源的访问. 就是说,Spring的Resource接口代表底层外部资源,提供了对底层外部资源的一致性访问接口. 源码如下: public interface InputStr…
Java的各种URL前缀的标准类和标准处理程序不足以完全访问低级资源.例如,没有URL可用于访问需要从类路径或相对于a获取的资源的标准化实现 ServletContext.虽然可以为专用URL 前缀注册新的处理程序(类似于现有的前缀处理程序http:),但这通常非常复杂,并且URL接口仍然缺少一些理想的功能,例如检查资源是否存在的方法指着. Resource接口 Spring的Resource接口是一个更强大的接口,用于抽象对低级资源的访问.以下清单显示了Resource接口定义: public…
本文内容 Resource接口的定义 Resource接口的内置实现 ResourceLoader接口 ResourceLoaderAware 接口 Resource接口的定义 Java 的标准 java.net.URL 类和各种 URL 前缀的标准处理程序不足以满足所有对低级资源的访问. 例如没有标准化的 URL 实现可用于访问需要从类路径或相对于 ServletContext 获取的资源. 虽然可以为专门的 URL 前缀注册新的处理程序(类似于现有的前缀处理程序如 http:),但这通常相当…
该接口拥有对不同资源类型的实现类 boolean exists() 资源是否存在 boolean isOpen() 资源是否打开 URL getURL() 如果底层资源可以表示成URL,则该方法返回对应的URL对象 File getFile() 如果底层资源对应一个文件,则该方法返回对应的File对象 InputStream getInputStream() 返回资源对应的输入流 WritableResource: 可写资源接口,有两个实现类FileSystemResource和PathReso…
前言 前面两篇介绍了上下文的启动流程和Environemnt的初始化,这两部分都是属于上下文自身属性的初始化.这篇开始进入Spring如何加载实例化Bean的部分 - 资源抽象与加载. 本文主要从以下方面介绍Spring中的资源Resource: 前提准备 Resource抽象 Resource加载解析 何时何地触发加载解析 总结 前提准备 Spring中的资源抽象使用到了很多陌生的api,虽然这些api都是JDK提供,但是日常的业务场景中很少使用或者接触不深.在阅读Resource的源码前,需…
目录 1       Resource简介 2       通过ResourceLoader获取资源 3       在bean中获取Resource的方式 1       Resource简介 在Spring内部,针对于资源文件有一个统一的接口Resource表示.其主要实现类有ClassPathResource.FileSystemResource.UrlResource.ByteArrayResource.ServletContextResource和InputStreamResource…
Spring系列之访问数据库   阅读目录 一.概述 二.JDBC API的最佳实践 三.Spring对ORM的集成 回到顶部 一.概述 Spring的数据访问层是以统一的数据访问异常层体系为核心,结合JDBC API的最佳实践和统一集成各种ORM方案,完成Java平台的数据访问. 回到顶部 二.JDBC API的最佳实践 Spring提供两种JDBC API的最佳实践,一种是以JDBCTemplate为核心的基于Template的JDBC使用方式,另一种则是在JdbcTemplate基础之上构…
目录 Spring系列之IOC的原理及手动实现 Spring系列之DI的原理及手动实现 Spring系列之AOP的原理及手动实现 引入 在前面我们已经完成了IOC,DI,AOP的实现,基本的功能都已经完成了,我们的手写框架也能勉强使用起来.为了让我们的框架能够使用起来比较简单,这一节我们来实现注解和xml的配置. tips 本章的xml和注解的功能都是为实现bean的创建,其他如aop等功能可仿造实现. 为什么要加注解和xml配置 如果有同学测试过我们写好的框架,可能会感受到使用起来非常麻烦,在…
Spring系列之Spring常用注解总结   传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop.事物,这么做有两个缺点:1.如果所有的内容都配置在.xml文件中,那么.xml文件将会十分庞大:如果按需求分开.xml文件,那么.xml文件又会非常多.总之这将导致配置文件的可读性与可维护性变得很低.2.在开发中在.java文件和.xml文件之间不断切换,是一件麻烦的事,同时这种思维上的不连贯也会降低开发的效率.为了解决这两个问题,Spring引入了注解,通过"@XXX&…
原文地址:Spring系列之beanFactory与ApplicationContext 一.BeanFactoryBeanFactory 是 Spring 的“心脏”.它就是 Spring IoC 容器的真面目.Spring 使用 BeanFactory 来实例化.配置和管理 Bean. BeanFactory:是IOC容器的核心接口, 它定义了IOC的基本功能,我们看到它主要定义了getBean方法.getBean方法是IOC容器获取bean对象和引发依赖注入的起点.方法的功能是返回特定的名…
Spring 系列教程之容器的功能 经过前面几章的分析,相信大家已经对 Spring 中的容器功能有了简单的了解,在前面的章节中我们一直以 BeanFacotry 接口以及它的默认实现类 XmlBeanFacotry 为例进行分析,但是,Spring 中还提供了另一个接口 ApplicationContext,用于扩展 BeanFacotry 中现有的功能. ApplicationContext 和 BeanFacotry 两者都是用于加载 Bean 的,但是相比之下, ApplicationC…
Spring 系列教程之默认标签的解析 之前提到过 Spring 中的标签包括默认标签和自定义标签两种,而两种标签的用法以及解析方式存在着很大的不同,本章节重点带领读者详细分析默认标签的解析过程. 默认标签的解析是在 parsedefaultelement(ele, delegate) 函数中进行的,函数中的功能逻辑一目了然,分别对4种不同标签(import. alias.bean 和 beans)做了不同的处理. private void parseDefaultElement(Element…
转载 https://mp.weixin.qq.com/s/Lf4akWFmcyn9ZVGUYNi0Lw 在<深入理解Spring系列之一:开篇>的示例代码中使用如下方式去加载Spring的配置文件并初始化容器. ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml"); 在web应用中,配置文件都是自动加载的,示例代码中的方式就不…
转载 https://mp.weixin.qq.com/s/1_grvpJYe8mMIAnebMdz9Q 接上篇<深入理解Spring系列之四:BeanDefinition装载前奏曲>,进入AbstractXmlApplicationContext类的loadBeanDefinitions方法,代码如下所示. @Override protected void loadBeanDefinitions(DefaultListableBeanFactory beanFactory) throws B…
转载 https://mp.weixin.qq.com/s?__biz=MzI0NjUxNTY5Nw==&mid=2247483814&idx=1&sn=ddf49931d552e9b4553dcec457a84c51&scene=19#wechat_redirect <深入理解Spring系列之一:开篇>中提到在Spring容器启动的过程中,会将Bean解析成Spring内部的BeanDefinition结构,本篇将深入分析这个BeanDefinition的内…
一.Spring IoC的核心概念 IoC(Inversion of Control  控制反转),详细的概念见Spring系列(一):Spring核心概念 二.Spring IoC的应用 1.定义Bean的信息 1.1 基于xml的形式定义Bean的信息 ① 新建一个Bean: package com.toby.ioc.component; /** * @desc: * @author: toby * @date: 2019/7/13 1:49 */ public class TobyBean…
有关Spring Cloud Kubernates(以下简称SCK)详见https://github.com/spring-cloud/spring-cloud-kubernetes,在本文中我们主要测试三个功能: 使用Kubernates服务发现配合Spring Cloud Ribbon做服务调用 读取Kubernates的ConfigMap配置并且支持修改后动态刷新 Spring Boot Actuator对Kubernates Pod信息的感知 编写测试程序 首先,我们来创建pom文件,注…
Spring系列之 配置文件的操作 写在文章前面: 本文带大家掌握Spring配置文件的基础操作以及带领大家理清依赖注入的概念,本文涉及内容广泛,如果各位读者耐心看完,应该会对自身有一个提升 Spring配置文件的作用 Spring配置文件是用于Spring工厂进行Bean生产,依赖关系注入,Bean实例分发的图纸,他类似于人类的大脑,我们必须掌握这张图纸的使用方法,才能进行相关的操作,灵活运用这张图纸准确的表达自己的意图.运筹帷幄,决胜千里.Spring的配置文件是一个或多个标准的xml文档,…
大家好,我是冰河~~ 由于在更新其他专题的文章,Spring系列文章有很长一段时间没有更新了,很多小伙伴都在公众号后台留言或者直接私信我微信催更Spring系列文章. 看来是要继续更新Spring文章了.想来想去,写一篇关于Spring中注解相关的文章吧,因为之前更新Spring系列的文章一直也是在更新Spring注解驱动开发.这篇文章也算是对之前文章的一个小小的总结吧,估计更新完这篇,我们会进入Spring的AOP章节的更新. 没有看过Spring其他文章的小伙伴,可以到[冰河技术]公号的[S…
Spring系列14:IoC容器的扩展点 回顾 知识需要成体系地学习,本系列文章前后有关联,建议按照顺序阅读.上一篇我们详细介绍了Spring Bean的生命周期和丰富的扩展点,没有阅读的强烈建议先阅读.本篇来详细讲讲容器提供的扩展点,完整的生命周期图镇楼. 本文内容 详解BeanPostProcessor 详解BeanFactoryPostProcessor 详解FactoryBean 详解BeanPostProcessor 作用和定义 常规 BeanPostProcessor 的作用是提供自…
前言 Spring是一款非常强大的框架,可以说是几乎所有的企业级Java项目使用了Spring,而Bean又是Spring框架的核心. Spring框架运用了非常多的设计模式,从整体上看,它的设计严格遵循了OCP----开闭原则,即: 1.保证对修改关闭,即外部无法修改Spring整个运作的流程 2.提供对扩展开放,即可以通过继承.实现Spring提供的众多抽象类与接口来改变类加载的行为 开卷有益,阅读Spring源码(无需每个类都看得很细,大体流程能梳理出来即可)对于个人水平的提升是帮助非常大…
Spring 系列: Spring 框架简介 Spring AOP 和 IOC 容器入门 在这由三部分组成的介绍 Spring 框架的系列文章的第一期中,将开始学习如何用 Spring 技术构建轻量级的.强壮的 J2EE 应用程序.developerWorks 的定期投稿人 Naveen Balani 通过介绍 Spring 框架开始了他由三部分组成的 Spring 系列,其中还将介绍 Spring 面向方面的编程(AOP)和控制反转(IOC)容器. Spring 是一个开源框架,是为了解决企业…
转载自:http://my.oschina.net/huangcongmin12/blog/83731 mybatis整合spring 之  基于接口映射的多对一关系. 项目用到俩个表,即student表和school表.表结构如下: school表: student表: 项目结构如下: 1)applicationContext.xml ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29…
今天学习了一下Spring的BeanPostProcessor接口,该接口作用是:如果我们需要在Spring容器完成Bean的实例化,配置和其他的初始化后添加一些自己的逻辑处理,我们就可以定义一个或者多个BeanPostProcessor接口的实现. 下面我们来看一个简单的例子 package com.spring.test.di; import org.springframework.beans.BeansException; import org.springframework.beans.…
@Resource和@Autowired两者都是做bean的注入使用.其实@Resource并不是Spring的注解,他的包是javax.annotation.Resource 需要导入.但是Spring支持该注解的注入. 共同点 两者都可以写在字段和setter方法上.两者如果都写在字段上,就不需要写写setter方法. 如果将@requied或者@autowired写了set方法之上,则程序会走到set方法内部.但如果写在了field之上,则不会进入set方法当中. 不同点 @Autowir…