文档章节

ApplicationContext的四个实现类

 骚年锦时
发布于 05/23 14:07
字数 478
阅读 2
收藏 1

1、ClassPathXmlApplicationContext

2、FileSystemXmlApplicationContext

3、XmlWebApplicationContext

4、WebApplicationContext

1、作用:

Context的实现类有很多,但是 CI 是唯一做具体工作的,其他实现都是对 CI 做代理。CI 中有一些成员对象,先来看看这些对象的用处:

1.mResources(Resources):获取 Apk 中 Res 资源的对象。

2.mOuterContext(Context):用于指向代理本对象的 Context,例如 Activity、Service 等。

3.mTheme(Resources.Theme):主题

4.mPackageManager(PM):包管理类,不仅可以获取我们apk包的信息,还能获取本机apk包的信息。

2、Api 归类

CI 中有很多 Api,我将这些 Api 归了一下类:

1.Service 操作:启动、停止、重启、绑定、解绑、获取系统服务以及多用户操作。

2.权限操作:检查本 App 是否有某种权限、检查某 App 是否有某种权限、检查Uri权限、授予权限等等。

3.关于 SP 的操作:我们知道 SP 其实就是 Xml 文件,所以这里的操作有:获取、移动、删除。

4.文件操作:增删移文件、打开文件流、获取 App 私有文件夹地址等等。

5.数据库操作:我们知道 Sqlite 其实是一种文件型数据库,所以有:打开、创建、移动、删除、获取数据库文件路径等操作。

1.

ClassPathXmlApplicationContext
e1. ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml");

e2. String[] locations = {"bean1.xml", "bean2.xml", "bean3.xml"};
ApplicationContext ctx = new ClassPathXmlApplication(locations);

注:其中FileSystemXmlApplicationContext和ClassPathXmlApplicationContext与BeanFactory的xml文件定位方式一样是基于路径的。

2.

FileSystemXmlApplicationContext
e1. ApplicationContext ctx = new FileSystemXmlApplicationContext("bean.xml"); //加载单个配置文件
e2. String[] locations = {"bean1.xml", "bean2.xml", "bean3.xml"};          

ApplicationContext ctx = new FileSystemXmlApplicationContext(locations );

3.

XmlWebApplicationContext

e1. ServletContext servletContext = request.getSession().getServletContext();    
ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(servletContext);

4.

WebApplicationContext初始化需要ServletContext事例,可在web.xml中配置启动Servlet或者容器监听器。

© 著作权归作者所有

粉丝 6
博文 28
码字总数 70387
作品 0
长沙
私信 提问
在web.xml 配置spring(ContextLoaderListener)

一、在web.xml配置Spring的applicationContext .xml和监听器ContextLoaderListener <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationCo......

LYQ1990
2016/05/23
25
0
[java]spring三大核心组件

Bean组件 组件作用 Bean组件在Spring中的Beans包下,为了解决三件事。Bean的创建,Bean的定义,Bean的解析。最关心的就是Bean的创建。 Bean的创建 1、工厂模式的实现,顶层接口是:BeanFacto...

菜鸟腾飞
2018/11/18
0
0
如何解决分布式系统中的跨时区问题[实例篇]

关于如何解决分布式系统中的跨时区问题,上一篇详细介绍了解决方案的实现原理,在这一篇中我们通过一个完整的例子来对这个问题进行深入探讨。尽管《原理篇》中介绍了那么多,解决方案的本质就...

长平狐
2012/09/04
377
0
IoC容器的实现( IoC 容器概述和在 Spring 中的应用场景)

1 IoC 容器概述 1.1 IOC 容器和依赖反转模式 我们日常的 java 项目开发都是由两个或多个类的彼此合作来实现业务逻辑的,这使得每个对象都需要与其合作的对象的引用(称为所依赖的对象),如果...

偷星辰夜
2017/11/20
0
0
spring mvc resource

UrlResource 访问网络资源的实现类 ClassPathResource 访问类加载路径里资源的实现类 FileSystemResource 访问文件系统里资源的实现类,使用file前缀来区分相对与绝对路径 ServletContextReso...

Canaan_
2017/11/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

python虚拟环境 virtualenv

python虚拟环境 virtualenv virtualenv为Python项目创建虚拟环境,让不同的项目使用不同的环境,不会产生影响。 virtualenvwrapper是对virtualenv的封装,使用更方便。 安装 pip3 install v...

xiaobai1315
4分钟前
0
0
网络安全-->浅谈UDP协议

简介 UDP-传输控制协议 三大特点: 1、无连接的 2、不可靠的 3、面向数据报 基于UDP的网络协议 1、NFS:网络文件协议 2、TFTP:简单文件传输协议 3、DHCP:动态主机配置...

qrainly
8分钟前
0
0
在进行远程桌面时,经常锁屏怎么解决?

  想要在远程电脑的时候不出现锁屏的现象,首先,你需要将远程电脑设置为允许远程连接。在远程电脑上,打开“设置” 并选择“系统”>“关于”。记下电脑名称。稍后将需要使用此名称。然后,...

takethelas
11分钟前
0
0
小猿圈java之数组

基本数据结构中,数组是很重要的,这篇小猿圈加加对数组详解一席,具体使用,在学习过程中有困惑的朋友,可以看一下加加的这篇文章,看到就是赚到,让我们一起看看吧。 一、数组的基本使用 ...

小猿圈加加
12分钟前
0
0
如何基于日志,同步实现数据的一致性和实时抽取?

7月25日晚8点,线上直播,【AI中台——智能聊天机器人平台】,点击了解详情。 一、背景 事情是从公司前段时间的需求说起,大家知道宜信是一家金融科技公司,我们的很多数据与标准互联网企业不...

宜信技术学院
21分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部