- 博客(61)
- 收藏
- 关注
原创 适配器设计模式 adapter design
适配器模式适配器的场景在生活中其实比较常见。 我们笔记本的电源,就叫电源适配器。当然还有很多其他的电源适配器,如手机充电器等。在这个场景中220V的全国统一电压是不可变更的原始电压(源角色)。而笔记本、手机需要的充电电压是我们需要的目标电压(目标角色)。那么从220V原始电压到目标电压,就需要一个适配器去处理(适配器角色)。通过对上述场景的分析。我们得到了适配器模式种的三个角色。除此之外,我们应该需要明确一点。适配者模式的使用场景,一般是在后期需求变化的情况下为了兼容新的需求,而不是在详细
2021-07-07 17:32:42 202
原创 工厂模式 工厂方法模式 抽象工厂模式 简单工厂模式 工厂模式于抽象工厂的区别 设计模式
工厂模式定义一个用于创建对象的接口,让子类实现具体类的创建。工厂将类的实例化延迟的子类。良好的分装性。对于具体产品,只要知道产品名称即可(类名或字符串),封闭了对产品创建的细节。屏蔽具体产品类。通过抽象产品接口,屏蔽了各个具体产品的实现细节。使用者只关心产品接口就行。比如,java中JDBC的模式,可以很方便的从mysql切换到Oracle。工厂方法模式,是典型的解耦框架。高层模块只需要知道产品的抽象类,符合迪米特法则。也符合依赖倒置原则,只依赖产品抽象类。也符合里氏替换原则,使用产品子类替换父产
2021-06-17 09:19:31 190
原创 单例模式 反射入侵 序列化入侵 饿汉式 懒汉式 双重校验锁 枚举 内部类
单例模式单例模式定义单例模式(singleton pattern)是一个比较简单的模式。即任何情况下,一个类在整个系统中都有且仅有一个实例。单例模式通用类图:单例模式的优点由于单例模式在内存中只有一个实例,减少内存开支,特别是一个对象需要频繁地创建销毁时,而且创建或销毁时性能又无法优化,单例模式就非常明显了由于单例模式只生成一个实例,所以,减少系统的性能开销,当一个对象产生需要比较多的资源时,如读取配置,产生其他依赖对象时,则可以通过在应用启动时直接产生一个单例对象,然后永久驻留内存的方式来
2021-05-30 12:17:39 303
原创 nginx 负载均衡——实战
负载均衡负载均衡演示案例预备条件准备两个tomcat的服务器。这里我们在同一台Linux服务器上运行两个tomcat分别为8080和8081端口。(关于tomcat的准备这里不在过多介绍,可以自行网上搜索)。在8080端口的tomcat的webapps路径下。再创建一个lbt文件夹,也创建一个a.html的文件。文件内容如下。<html><h1>load banlance 8080</h1></html>同样我们在8080端
2021-05-17 09:34:06 448 1
原创 nginx 反向代理 实战
反向代理反向代理演示案例预备条件准备两个tomcat的服务器。这里我们在同一台Linux服务器上运行两个tomcat分别为8080和8081端口。(关于tomcat的准备这里不在过多介绍,可以自行网上搜索)。在8080端口的tomcat的webapps路径下。创建一个dev文件夹并创建一个a.html的文件。文件内容如下。<html> <h1>tomcat 8080 dev</h1></html>同样我们在8080端口的
2021-05-11 12:27:42 374 3
原创 Nginx初始化 安装 配置 启动
Nginx 首页Nginx 初始化nginx 简介Nginx是什么?Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器。说明: 在使用安装、使用过程中可能会有一些问题,可以参考附件一 Nginx 常见问题速查表。nginx安装(Linux)安装nginx依赖pcre下载并解压pcre安装包下载地址https://sourceforge.net/projects/pcre/tar -xzvf pcre-8.35.tar.gz编译并安装pcre进入 .
2021-05-05 11:58:27 490
原创 Open Feign 实战笔记
Open Feign笔记概念声明式的web服务客户端。使用接口加注解的形式编程。它是对RestTemplate和ribbon做了进一步封装。Feign已经停更,OpenFeign是在Feign的基础上又做了进一步的封装。Feign:Feign是Spring Cloud组件中的一个轻量级RESTful的HTTP服务客户端Feign内置了Ribbon,用来做客户端负载均衡,去调用服务注册中心的服务。Feign的使用方式是:使用Feign的注解定义接口,调用这个接口,就可以调用服务注册中心的服务。
2021-04-23 14:16:43 284
原创 spring cloud ribbon 负载均衡
Ribbon笔记概念ribbon是一个基于消费端的负载均衡组件。ribbon在客户端的使用1. pom配置在使用eureka作为服务注册的消费者,引入了最新的pom之后,默认是引入了ribbon的jar包,因此可以省略不再引入。<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eurek
2021-03-20 23:15:55 108
原创 spring cloud consul
Consul笔记返回微服务目录HOME服务端consul在windows下可以直接运行exe文件,访问http://localhost:8500即可。命令行启动也行 consul agent -dev客户端配置pom文件 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-consul-d
2021-03-18 12:38:26 76
原创 spring cloud zookeeper
Eureka笔记返回微服务目录HOMEzookeeper服务端实现链接至Zookeeper教程zookeeper客户端实现zookeeper的客户端包含,消费端与服务端部分,消费端也是通过@LoadBalanced负载均衡来调用。与Eureka的架构原理类似。配置pom文件由于引入spring-cloud-starter-zookeeper-discovery时会自带zookeeper原始的jar包,可能会与服务器部署的zookeeper冲突,需要进行版本特殊处理。 <de
2021-03-18 11:15:08 155
原创 Zookeeper 安装配置
Zookeeper安装配置启动流程。1. 获取zookeeper安装包解压原始安装包apache-zookeeper-3.5.5-bin.tar.gz2. 配置文件zoo.cfg将conf目录中zoo_sample.cfg 文件复制一份zoo.cfg。修改必要的配置,一般修改dataDir数据存放路径。如需要集群则配置集群信息。 # The number of milliseconds of each tick tickTime=2000 # The number of ticks
2021-01-22 19:48:17 255
原创 spring cloud eureka 全实战笔记
Eureka笔记简介组件名语言CAP服务健康检查对外暴露接口Spring Cloud集成EurekaJavaAP可配支持HTTP已集成资源信息https://cloud.spring.io/spring-cloud-netflix/2.2.x/reference/html/#spring-cloud-running-eureka-serverEureka服务端配置步骤Eureka服务端pom文件配置 <-- springcloud1.5.
2020-12-17 14:43:30 254
原创 springmvc项目3-HiddenHttpMethodFilter与REST风格增删改查
0,项目springmvc003简介 通过使用org.springframework.web.filter.HiddenHttpMethodFilter拦截器、@RequestMapping的限制请求方式,来实现REST风格的增删改查。1,按照项目springmvc001搭建一个基本的springmvc框架。2,新建一个RestController类。我们注解的访问地址都是
2020-06-20 13:58:35 384
原创 springmvc项目4--映射POJO
项目简介: 自动映射POJO,而且能够级联映射。1,按照项目1搭建一个springmvc的web项目。2,新建两个实体类。Fahter类有一个Sun的成员变量。public class Father { private String name; private int age; private Sun sun; public String getName() {
2020-06-20 13:58:13 445
原创 springmvc项目5-使用Servlet原生API
项目简介在映射的方法参数中注入Servlet的9种原生API。1,使用项目1的方式搭建springmvc框架。2,新建一个ServletApiControl类。test方法中的九个对象即springmvc可以使用的severlet原生的api。其中呗注释的四个原生的api在使用的时候会产生二次读取request域中流的异常。相互之间会有冲突。由springmvc的Ann
2020-06-20 13:57:32 1426
原创 第二章Spring资源和配置开发环境-第一节spring资源网址 spring官网 eclipse插件 Spring jar包下载
一:开发工具清单spring官网:http://spring.io/。spring的eclipse插件地址:http://spring.io/tools/sts/all。spring的Jar包下载地址:http://maven.springframework.org/release/org/springframework/spring/
2020-06-20 13:57:09 406
原创 第三章Spring的Hello World
一、Spring的Hello World程序。 根据IT界的惯例,学习一门新技术之前总是要搞一个Hello World的。我就从这个案例开始,在这之前的必要工作要先做好。例如jdk、eclipse、springIDE等等,主要相关准备在【Spring自学之路】目录中可以找到这里不再赘述。 首先我们在eclipse中新建一个普通的Java工程,命名为【spring001hello
2020-06-19 08:28:51 527
原创 第四章IOC:DI、DL概念 注入的方法
1.IOC:DI、DL概念控制反转(inversionofcontrol,英文缩写为IOC)是Spring框架的核心。控制反转实现方式一般有两种,依赖注入(DependencyInjection,简称DI)和依赖查找(DependencyLookup)。依赖注入应用比较广泛,依赖查找暂时不做讨论。在面向对象的开发过程中,我们的项目中的每个类往往都有相互之间的关系,这就
2020-06-19 08:28:36 1303
原创 第五章IOC:使用-XML装配Bean(五章第一节总体介绍)
一、IOC容器的使用-XML装配Bean 本节内容主要是介绍如何用xml来配置Bean,也就是配置spring容器的配置文件。主要一下几个部分入手。 -首先介绍一下如果配置一个标准的Bean 。 -注入属性,即如何为Bean的属性注入相应的值。 -工厂创建Bean,如何用工厂的方式获取Bean的实例。 -Bean的关系,通过XML配置文件来实现Bean之间的相互关系。
2020-06-19 08:28:13 252
原创 第五章第二节-spring注入属性
本节介绍如何配置一个最原始的Bean,通过构造器注入方式和属性注入的方式为Bean的属性注入值。简单介绍一下spring各个xml命名空间的作用。
2020-06-19 08:27:30 342
原创 第五章第三节-工厂创建Bean
我还是以一个小项目来进行介绍。创建一个普通的java项目,也是和HelloWorld中创建的项目一样。这里主要涉及Person.java就是一个普通的Bean类,FactoryBeanImpl.java、InstanceFactory.java、StaticFactory.java这三个就是我们将要使用的工厂类,MainTest.java测试类,spring.xml容器的配置文件。他们的完整代码见
2020-06-19 08:27:13 437
原创 第五章第四节-bean的关系
本节内容,介绍在spring的xml配置文件中配置各类bean之间的关系,例如引用bean,内部bean,继承bean,抽象bean等等。
2020-06-19 08:26:51 275
原创 第五章第八节-P命名空间
本节介绍spring配置文件的P命名空间。(后面有本节完整的代码)创建一个Person的bean类,有private String name;private int age;两个成员(有setter风格的方法)。按照以前的属性注入方式肯定使用构造器和属性注入的方法。这里不再使用之前的方式,在引入P命名空间后,使用p:age=""和p:age-ref=""的方式注入即可。也就是做了一个简化
2020-06-19 08:25:39 242
原创 第五章第九节-property-placeholder加载外部属性文件
本节也以一个小项目来做介绍,还是和HelloWorld的项目一样,不过多加了c3p0-0.9.1.2.jar和mysql-connector-java-5.1.34.jar的包。项目是以配置数据库的连接作为演示。项目中TestMain.java是测试类;db.properties是外部的属性文件(和spring配置文件一样放在src下);spring.xml是IOC容器配置文件。
2020-06-19 08:25:23 1210
原创 附录二:Spring的各类jar包说明
spring-beans和spring-core两个jar包主要提供了spring框架的基础能力,主要包括IOC和依赖注解两大特征,这两大特征在BeanFactory接口的基础上及其相应的衍生接口和类中得到了实现。在IOC部分详细讨论。spring-context是在Core和Beans的基础上建立的功能模块,他继承了Beans和Core中的一些基本功能,同时增加了对诸如
2020-06-18 08:32:37 295
原创 maven错误锦集- Could not transfer artifact com.oracle:ojdbc14:jar:10.2.0.4.0
一、提示的错误信息:Could not transfer artifact com.oracle:ojdbc14:jar:10.2.0.4.0二、项目中pom.xml文件中的配置 10.2.0.4.0 com.oracle ojdbc14 ${oracle.driver.version} runtime 三、解决的办法下载提出出错的jar包,这
2020-06-18 08:32:18 4787
原创 5.1.1-2,XSD简介 beans的XSD文档声明
所有注册到spring容器的对象,都被叫做bean。这些bean集合起来就叫做beans,这样理解起来比较容易。当然在beans不是只能包含bean元素还有其他的也是可以,这里就不在展开来讲。 关于的XSD,也就是配置文件的文档声明,spring的配置文件提供相应的标签支持。通常在只引入spring-beans.xsd的情况下,beans中的声明如下所示。Spring2.0之后
2020-06-18 08:31:43 510 2
原创 Mybatis 学习思维导图 学习目录
1 Mybatis.21.1 helloword.21.2 configuration.41.2.1 properties.41.2.2 settings.51.2.3 typeAliases.91.2.4 typeHandlers.101.2.5 objectFa
2020-06-18 08:31:21 395
原创 第五章第六节-装配集合
按照spring的HelloWorld案例,创建一个项目。涉及的bean类三个Car.javaHouse.javaPerson.java,其中Car和House是Person的成员。DataBase.java类是测试Properties属性的。MainTest.java是一个有main函数的测试类。spring.xml是容器配置文件(结尾有整个项目的完整代码)。一、配置List和Ma
2020-06-18 08:30:53 201
原创 TortoiseGit 同步 gitlab git
摘要:利用ToriseGit和Git 同步gitlab的远程仓库。1,安装下面两个软件 和 生成密钥、公钥安装TortoiseGit、Git-2.11.1-64-bit 软件。2,生产git、TortoiseGit、gitlab三方关联的公钥和密钥。第一步用git生产私钥和公钥文件。打开git软件的工具,在弹出的控制台中输入如下命令:$ ss
2020-06-18 08:30:20 1888
原创 Mybatis HelloWorld
一、记忆:1,导入mybatis的jar包和相应数据库驱动。2,配置mybatis全局配置文件。3,创建实体类及对应的mapper文件。4,创建测试类获取mybatis全局配置文件。创建session工厂。创建session(事务默认开启,只需要事务提交的方式;hibernate需要手动开启事务)。查询数据库。提交事务(自动或手动)。提交session。
2020-06-18 08:28:29 170
原创 springmvc项目二RequestMapping注解
1,新建一个web项目,按照【springmvc项目一】的方式搭建好即可。2,在新项目的WEB-INF的文件夹中新建一个views的文件夹,然后在views中新建一个success.jsp文件。在工程目录下(eclipse默认为WebContent)新建一个index.jsp。当前的两个jsp文件暂时没有其它内容,后面的操作中将逐一添加需要的代码。3,新建一个TestRequestMa
2020-06-18 08:28:14 431
原创 第六章IOC:使用注解装配bean
本节介绍使用注解的方式来装配Bean。当然对于xml配置文件还是需要的,但可以极大减少xml的配置内容。在这之前先为大家介绍一下四种类型的注解。括号中是我自己理解一些概念。需要了解的是spring框架本身是无法区分这些组建的作用,也就是说它只是都当作一个组建扫描,只是我们在使用的过程中来区分应用。@Component 基本注解, 标识了一个受 Spring 管理的组件。@Repo
2020-06-18 08:26:35 258
原创 Mybatis 全局配置 二级缓存 cacheEnabled
<!--影响全局的二级缓存,true二级缓存有效(default),false无效--><setting name="cacheEnabled" value="true"/>
2020-06-17 08:39:41 1033
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人