容器

Spring(三)通过配置类配置IoC容器

允我心安 提交于 2020-02-11 01:42:28
Spring(三) 通过配置类配置Spring IoC容器 配置容器的注解 @Configuration 将当前类指定为一个配置类 @ComponentScan 通过注解指定Spring在创建容器时要扫描的包 属性: value:作用和xml配置文件中 < context: component-scan base-package = " your package " /> 的作用完全相同 @Bean 将当前方法的返回值作为bean对象存入Spring的IoC容器中 属性: name:用于指定bean对象的id,如果为空,则默认是当前方法名 使用注解配置方法时,如果方法有参数,spring框架会去容器中寻找有没有可用的bean对象 创建ApplicationContext对象 使用AnnotationConfigApplicationContext()的构造器,构造器参数可变,如下 public AnnotationConfigApplicationContext ( Class < ? > . . . componentClasses ) 参数可以填写若干个配置类,如果在参数中填写了配置类,那么上面的**@Configuration**则可有可无 导入其他配置类注解 @Import 属性:用于指定中填写要导入的配置类 使用Import后,有Import的类为父配置类

简单IOC容器实现

♀尐吖头ヾ 提交于 2020-02-10 20:44:14
前言 本文是为了学习 Spring IOC 容器的执行过程而写,不能完全代表 Spring IOC 容器,只是简单实现了容器的 依赖注入 和 控制反转 功能,无法用于生产,只能说对理解Spring容器能够起到一定的作用。 开始 创建项目 创建Gradle项目,并修改 build.gradle plugins { id 'java' id "io.franzbecker.gradle-lombok" version "3.1.0" } group 'io.github.gcdd1993' version '1.0-SNAPSHOT' sourceCompatibility = 1.8 repositories { mavenCentral() } dependencies { testCompile group: 'junit', name: 'junit', version: '4.12' } 创建 BeanFactory BeanFactory 是IOC中用于存放bean实例以及获取bean的核心接口,它的核心方法是 getBean 以及 getBean 的重载方法,这里简单实现两个 getBean 的方法。 package io.github.gcdd1993.ioc.bean; /** * bean factory interface * * @author gaochen

容器化技术介绍(kubernetes与docker)

徘徊边缘 提交于 2020-02-10 19:56:13
容器化技术介绍(kubernetes与docker) 一、docker 二、kubernetes 三、kubernetes集群环境搭建 一、docker 伴随着计算机技术的飞速发展,容器化技术现在越来越火,而Docker无疑是其中的明星产品,目前Docker 在国内特别是在一线互联网公司发展的如火如荼,Docker 的使用已经是十分普遍了。 Docker是基于Linux内核的Cgroup和namespace,以及AUFS类的Union FS等技术,对进程进行了封装隔离的技术。它属于操作系统层面的虚拟化技术。 传统虚拟化技术是虚拟出一套硬件后,在其基础上运行一个完整的操作系统,再在此系统上运行所需的应用进程。而Docker技术是容器内的应用进程直接运行于宿主机的内核,容器内没有自己的内核,而且也不虚拟出硬件。因此,相对于传统的虚拟化技术而言,Docker更加轻便。 Docker容器具有以下的优势: (1)更高效地利用系统资源; (2)更快捷的启动时间; (3)一致的运行环境; (4)支持持续交付和部署; (5)更轻松的迁移应用; (6)更轻松的维护和扩展。 Docker使用客户端—服务器(C/S)架构模式,使用远程API来管理和创建Docker容器。在Docker中,用三个基本概念需要了解: (1)Docker镜像:Docker镜像是一个特殊的文件系统,除了提供容器运行时所需的程序

makeSuite(自动挡)

南笙酒味 提交于 2020-02-10 18:42:14
makeSuite执行顺序: 创建容器对象,并且将用例添加到容器中 找个 人 去执行容器中的用例,这个 人 我们称为 执行器 makeSuite容器有两种方式添加用例: suite.addTest(用例对象),每次往容器中添加一个 suite.addTests([用例对象1, 用例对象2, ......]),一次添加多个用例 suite.countTestCases(),输出当前容器中有多少用例 注意:有的同学可能在写unittest.makeSuite的时候,点不出来 makeSuite ,不要怕,生写就完了,千万不要怕飘黄。 import unittestclass MyTestCase(unittest.TestCase): def case_01(self): self.assertTrue('FOO'.isupper()) # 'FOO'.isupper() --> True def case_02(self): self.assertTrue('Foo'.isupper()) def case_03(self): self.assertTrue('bar'.islower()) def test_case_01(self): self.assertEqual(1, 1) def test_case_02(self): self.assertEqual(1, 0)if _

CSS 清除浮动的方法

安稳与你 提交于 2020-02-10 17:34:49
写在前面: 转载本文之前, 我的目的只是想实现div中ul下面的li不居中显示的问题, 详情可参见 清除li内a标签的float=left实现a标签在li内居中显示 , 所以下面也不是我想要的答案, 但又感觉文章介绍的第五种方法很巧, 留下以备不时之需. =======================================以下为正文. ======================================= 转自: https://blog.csdn.net/u010585448/article/details/51760303 重点推荐第五种方式 CSS中利用float属性可以使元素脱离文档流浮动到父元素的左侧或者浮动的父元素的右侧,这时如果对元素使用浮动属性,会导致父元素不能被撑开。 CSS代码: .wrapper{ width: 40em; border: 1px solid red; } .leftFloat{ width: 9em; height: 5em; background: #ffffcc; float: left; } .rightFloat{ width: 9em; height: 5em; background: #ffffcc; float: right; } 布局: <div class="wrapper"> <div class=

c++之容器详解

十年热恋 提交于 2020-02-10 15:47:37
5. 类模板编程 有时候继承、包含并不能满足重用代码的需要,这一般在容器类里面体现的尤为突出。例如: 我们定义了一个容器类,Container, 这个Container类可以实现类似verctor一样的工作,能保存数据,能修改数据,并且 数据的类型不限制 ,但是 针对数据的操作都是一样 的。那么类模板编程就成了不二之选了。 1. 定义模板类 这里以栈作为参照对象,定义一个模板类,实现栈一样的功能。 原始代码 class Stack{ private : enum{MAX = 10}; //表示这个Stack容器最多只能装10个。 int top =0 ; //表示最顶上的索引位置 string items[MAX]; //定义一个数组,以便一会装10个元素 public: bool isempty(){ return top == 0; } bool isfull(){ return top == MAX; } //压栈 int push(string val){ if(isfull()){ return -1; } //没有满就可以往里面存 items[top++] = val; } //出栈 string pop(){ if (isempty()){ return ""; } //如果不是空 top 只是指向位置,而数组获取数据,索引从0开始,所以先-- return

docker常用命令

心不动则不痛 提交于 2020-02-10 15:43:23
docker常用命令 docker images docker search/docker pull/docker rmi docker ps/docker ps -a docker run docker exec docker start/docker stop/docker rm docker inspect docker info/docker version docker images #查看拥有的镜像 docker images docker search/docker pull/docker rmi #默认从Docker Hub查找镜像 docker search [OPTIONS] TERM –automated :只列出 automated build类型的镜像; –no-trunc :显示完整的镜像描述; -s :列出收藏数不小于指定值的镜像。 #从镜像仓库中拉取或者更新指定镜像 docker pull [OPTIONS] NAME[:TAG|@DIGEST] -a :拉取所有 tagged 镜像 –disable-content-trust :忽略镜像的校验,默认开启 #删除本地镜像 docker rmi [OPTIONS] IMAGE [IMAGE...] -f :强制删除; –no-prune :不移除该镜像的过程镜像,默认移除; 示例

修改alpine Linux的Docker容器的时区

吃可爱长大的小学妹 提交于 2020-02-10 09:56:24
适用对象 使用 Alpine Linux 发行版的 Docker 镜像容器。 仅仅适用于 没有 安装 uclibc 的系统。 修改步骤 进入容器命令行 # docker exec -it container_name /bin/sh 安装 timezone 数据包 # apk add -U tzdata # ls /usr/share/zoneinfo 为了防止添加失败,加上 -U 参数,更新仓储缓存。 列出安装的时区文件,验证是否下载成功。 拷贝需要的时区文件到 localtime ,国内需要的是 Asia/Shanghai : # cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 验证时区 # date Tue Jan 9 22:53:46 CST 2018 CST 即为 中国标准时间 。 移除时区文件: # apk del tzdata 作者:mcjiffy 链接:https://www.jianshu.com/p/cd1636c94f9f 来源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 来源: https://www.cnblogs.com/lgj8/p/12289889.html

容器queue

我与影子孤独终老i 提交于 2020-02-10 09:25:18
//容器queue于stack相似,内部含有stack,本质算为容器的适配器 #include<iostream> #include<queue> using namespace std; int main(){ queue<int>q; q.push(1); q.push(2); cout<<q.front()<<endl; cout<<q.size()<<endl; q.pop(); cout<<q.front()<<endl; return 0; } 来源: https://www.cnblogs.com/zmachine/p/12289823.html

CSS_06

我的未来我决定 提交于 2020-02-10 08:24:41
一 .复杂选择器 3.伪类选择器 ①目标伪类target ②结构伪类 elem:first-child{} 代表两个条件 匹配elem的父元素的第一个儿子(elem的大哥) 这个大哥必须是elem元素 elem:last-child{} 匹配elem的父元素的最后一个儿子(elem的小弟) 这个最小的弟弟必须是elem元素 elem:nth-child(n) 匹配elem的父元素的第n个儿子(n从1开始) 这个儿子也必须是elem元素 ③匹配空元素 :empty{} 空元素 空元素:没有文本,没有空格,没有其他子元素的元素 ④:only-child 匹配,当前元素是其父元素的唯一的子元素 ⑤否定伪类 :not(selector) /*除了第一个a标签,其它a的字体都变成黄色 */ a:not(:first-child){color:#ff0;} /*除了第三个a标签,其它a的字体都变成蓝*/ a:not(:nth-child(3)){color:#f0f;} 4.伪元素选择器 ①内容伪元素 1::first-letter{ } 或 :first-letter{} 匹配首字符的样式 2::first-line{ } 或 :first-line{} 匹配首行的样式 当首行和首字符冲突的时候,以首字符为准 3.::selection{} 必须是两个 :: 匹配选中部分的文字样式 注意