容器

获取spring容器IOC核心容器

孤街浪徒 提交于 2020-03-17 02:33:03
ApplicationContext的三个常用实现类 classPathXmlApplicationContext: 它可以加载路径下的配置文件,要求配置文件必须在类路径下。不在的话加载不了 FileSystemXmlApplicationContext: 它可以加载磁盘任意路径下的配置文件件(必须有访问权限) AnnotationConfigApplicationContext:它是用于读取注解创建容器的 核心容器的两个接口引发出的问题: 1、 ApplicationContext: 单例对象适用 它在构建核心容器时,创建对象采取的策略是采用立即加载的方式。也就是说,只要一读取配置文件马上就创建文件中配置的对象。 2、BeanFactory: 多例对象适用 它在构建核心容器时,创建对象采取的策略是采用延迟加载的方式。也就是说,什么时候根据id获取对象了,什么时候才真正的构建对象。 代码 public static void main ( String [ ] args ) { //1.获取核心容器对象 //ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml"); //2.根据id获取Bean对象 //IAccountService as = (IAccountService)ac.getBean

Java单体应用 - 常用框架 - 02.Spring

感情迁移 提交于 2020-03-17 01:54:16
原文地址: http://www.work100.net/training/monolithic-frameworks-spring.html 更多教程: 光束云 - 免费课程 Spring 序号 文内章节 视频 1 概述 - 2 体系结构 - 3 特点 - 4 Spring与IoC - 5 第一个Spring应用程序 - 请参照如上 章节导航 进行阅读 1.概述 Spring 的主要作用就是为代码“ 解耦 ”,降低代码间的耦合度。 根据功能的不同,可以将一个系统中的代码分为 主业务逻辑 与 系统级业务逻辑 两类,它们各自具有鲜明的特点: 主业务代码间逻辑联系紧密,有具体的专业业务应用场景,复用性相对较低; 系统级业务相对功能独立,没有具体的专业业务应用场景,主要是为主业务提供系统级服务,如日志、安全、事务等,复用性强。 Spring 根据代码的功能特点,将降低耦合度的方式分为了两类: IoC 与 AOP 。 IoC 使得主业务在相互调用过程中,不用再自己维护关系了,即不用再自己创建要使用的对象了。而是由 Spring 容器统一管理,自动“注入”。 而 AOP 使得系统级服务得到了最大复用,且不用再由程序员手工将系统级服务“混杂”到主业务逻辑中了,而是由 Spring 容器统一完成“织入”。 Spring 是于 2003 年兴起的一个轻量级的 Java 开发框架

Docker:为容器设定数据卷的两种方式

时光总嘲笑我的痴心妄想 提交于 2020-03-17 01:10:50
1. 命令行方式: 以安装mysql为例: 在宿主机建立与MySQL容器挂载的文件目录(如/mysql),在该目录下至少包含下面三个目录: data logs conf 进入mysql目录下,执行下面容器运行命令,绑定容器卷。 运行mysql: docker run -p 3306:3306 --name mysql -v $PWD /conf:/etc/mysql/conf.d -v $PWD /logs:/logs -v $PWD /data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD = 123456 -d mysql:5.7 2. DockerFile方式: 以挂载Tomcat的webapps目录为例: FROM tomcat:9.1 VOLUME [ "/usr/local/tomcat/webapps" ] 可以看出以DockerFile中VOLUME命令指定容器中数据卷对应位置,并没有提供能够指定在宿主机中文件的位置,其原因是,不同的宿主机下,无法确定一个目录的存在。 上面没有指定数据卷在宿主机中位置,如何查看: 使用 docker inspect 容器id 查看容器详情: 注意: (1)默认拉取的tomcat:9.0 他的webapps下的内容在webapps.dist文件夹下; (2)当配置数据卷编写DockerFile时

Castle 开发系列文章

烂漫一生 提交于 2020-03-17 00:32:28
http://www.cnblogs.com/Terrylee/archive/2006/04/28/387503.html Castle 是针对.NET平台的一个开源项目,从数据访问框架ORM到IOC容器,再到WEB层的MVC框架、AOP,基本包括了整个开发过程中的所有东西,为我们快速的构建企业级的应用程序提供了很好的服务。4月份以来,Terrylee写了一系列的Castle的文章,这里做一下总结,后续还有Facility系列等,本部分内容会不断的更新。 第一部分:ActiveRecord学习实践系列 1 . Castle ActiveRecord 学习实践(1 ):快速入门指南 2 . Castle ActiveRecord 学习实践(2 ):构建配置信息 3 . Castle ActiveRecord 学习实践(3 ):映射基础 4 . Castle ActiveRecord 学习实践(4 ):实现One-Many 关系的映射 5 . Castle ActiveRecord 学习实践(5 ):实现Many–Many 关系的映射 6 . Castle ActiveRecord 学习实践(6 ):延迟加载和使用Where 子句 7 . Castle ActiveRecord 学习实践(7 ):使用HQL 查询 8 . Castle ActiveRecord 学习实践(8 )

C++关联容器知识总结

折月煮酒 提交于 2020-03-17 00:29:02
  C++的容器类型可以分为顺序容器和关联容器两大类。顺序容器的知识可以参看我上篇的随笔 《C++顺序容器知识总结》 。关联容器支持通过键值来高效的查找和读取元素,这是它和顺序容器最大的区别。两种基本的关联容器类型是map和set。map的元素以键-值对的形式组织:键用作元素在map中的索引,而值则表示所存储和读取的数据。set仅包含一个键,并有效的支持关于某个键是否存在的查询。下表是关联容器的类型: map 关联数组;元素通过键来存储和读取 set 大小可变的集合,支持通过键实现快速读取 multimap 支持同一个键多次出现的map类型 multiset 支持同一个键多次出现的set类型 一.pair类型   在开始介绍关联容器之前,我们需要了解一种与之相关的标准库类型——pair类型,该类型定义在头文件utilty中。下表是pair类型提供的操作。 pair<T1,T2> p1; 创建一个空的pair对象,它的两个元素分别是T1和T2类型,采用值初始化 pair<T1,T2> p1(v1,v2); 创建一个pair对象,它的两个元素分别是T1和T2类型,其中first成员初始化为v2,second成员初始化为v2。 make_pair(v1,v2) 以v1,v2值创建一个新的pair对象,其元素类型分别是v1,v2类型 p1<p2 两个pair对象之间的小于运算,遵循字典顺序

Docker容器中的OpenJ9类共享

北战南征 提交于 2020-03-16 17:52:19
通过优锐课核心java学习笔记中,我们可以看到,码了很多专业的相关知识, 分享给大家参考学习。 在容器化环境中启用类共享 OpenJ9最初设计为可在2000年代早期的移动设备上运行,它是一种用于云的Java虚拟机,它使用的内存大约是JDK8 Hotspot的一半,而吞吐量却几乎与其相当。这种性能提升直截了当;但是,还有更多的调整可以做。在本文中,了解在容器化环境中运行时如何启用OpenJ9的类共享功能。 如果你不熟悉OpenJ9中的类共享功能,那么教程“ Eclipse OpenJ9中的类共享”(IBM Developer,2018年6月)深入探讨了类共享的工作原理以及为什么要使用它。简短的版本是类共享允许OpenJ9 JVM在Java代码上编译和执行优化,并将该信息缓存在一个公共位置,以供其他OpenJ9 JVM使用。类共享提供了显着的好处,包括提高了启动速度并减少了CPU和内存使用量。 在容器化环境之外,使用OpenJ9的类共享功能就像将JVM arg -Xshareclasss添加到启动脚本中并让OpenJ9的默认值处理其余部分一样简单。但是,在容器化环境中(如在云中运行Java应用程序时经常发生的情况),需要做更多的工作。让我们看一下在容器化环境中设置OpenJ9的类共享的两种方法,并权衡每种方法的优缺点。 方法1:使用Docker

使用ivx开发学习绝对定位的心得分享

喜你入骨 提交于 2020-03-16 17:51:57
今天想与大家分享的ivx学习经验是关于绝对定位的使用,分析使用的依然是ivx官网的demo,绝对定位容器的使用,我认为核心在于理解绝对定位的含义,我所理解的绝对定位指的是所添加的组件在其所处的绝对定位环境中的位置,也就是坐标,是固定的,也就是这个组件位于这个绝对环境中一个固定的位置,固定它的就是它的坐标,下面我分享一下我对官网demo的分析: 1.在新版本的ivx工作台中新创的作品可以直接选择最初始的定位类型,这里选择的是绝对定位方式 2.创建新作品后我们可以看到,右边的页面和左边的组件,都是浅蓝色的,在ivx中,将相对定位的对象和组件显示为白色,而绝对定位的对象和组件显示为浅蓝色,我觉得这是ivx非常细心的地方,感受到了制作人员的呵护,十分方便我们的判断,一目了然 3.接下来我们就可以在页面下添加组件啦,我们点击组件后发现组件并没有立即出现在页面下,在绝对定位容器下添加组件时,由于没有坐标,所以无法固定这个组件,我们将鼠标放到显示区域上,然后进行拖曳,就可以将组件按照拖曳的结果,出现在容器里了 然后我们只需要做一些细微的调整,使我们的组件在我们所需要的精确坐标点和我们所需要的精准的大小就好了 4.然后我发现,在绝对容器下可以嵌套相对容器,反之亦可,比如官网demo中在绝对定位页面下添加了相对定位横幅,在这个横幅下就能添加相对定位组件啦。关于什么时候使用绝对定位

Spring面试题

假如想象 提交于 2020-03-16 09:16:59
69道Spring面试题和答案 原文地址 译者:深海(1422207401@qq.com) 校对:方腾飞 目录 Spring 概述 依赖注入 Spring beans Spring注解 Spring数据访问 Spring面向切面编程(AOP) Spring MVC Spring 概述 1. 什么是spring? Spring 是个java企业级应用的开源开发框架。Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用。Spring 框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯。 2. 使用Spring框架的好处是什么? 轻量: Spring 是轻量的,基本的版本大约2MB。 控制反转: Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们。 面向切面的编程(AOP): Spring支持面向切面的编程,并且把应用业务逻辑和系统服务分开。 容器: Spring 包含并管理应用中对象的生命周期和配置。 MVC框架 :Spring的WEB框架是个精心设计的框架,是Web框架的一个很好的替代品。 事务管理: Spring 提供一个持续的事务管理接口,可以扩展到上至本地事务下至全局事务(JTA)。 异常处理: Spring 提供方便的API把具体技术相关的异常(比如由JDBC

spring面试题

梦想的初衷 提交于 2020-03-16 08:41:43
1.选择使用Spring框架的原因? 使用Spring: 第一是使用它的IOC功能,在解耦上达到了配置级别。 第二是使用它对数据库访问事务相关的封装。 第三就是各种其他组件与Spring的融合,在Spring中更加方便快捷的继承其他一些组件。 2.Spring 是如何管理事务的? spring的事务声明有两种方式,编程式和声明式。spring主要是通过“声明式事务”的方式对事务进行管理,即在配置文件中进行声明,通过AOP将事务切面切入程序,最大的好处是大大减少了代码量。 3.Spring IoC容器配置Bean的方式? 答: 基于XML文件进行配置。 基于注解进行配置。 基于Java程序进行配置(Spring 3+) 4.Bean 是如何被管理的? 在Spring框架中,一旦把一个bean纳入到Spring IoC容器之中,这个bean的生命周期就会交由容器进行管理,一般担当管理者角色的是BeanFactory或ApplicationContext。认识一下Bean的生命周期活动,对更好的利用它有很大的帮助。 概括来说主要有四个阶段:实例化,初始化,使用,销毁。 5.阐述Spring框架中Bean的生命周期? ApplicationContext容器中,Bean的生命周期流程如上图所示,流程大致如下: 1.首先容器启动后