- 博客(23)
- 收藏
- 关注
原创 Spring核心之一:Aop
Spring 的关键组件之一是 AOP 框架。尽管 Spring IoC 容器不依赖于 AOP(这意味着您不需要使用 AOP),但 AOP 是对 Spring IoC 的补充,以提供功能非常强大的中间件解决方案。面向切面编程切面(ASPECT):横切关注点 被模块化的特殊对象。是一个类通知(Advice):切面中需要完成的工作。即类中的方法目标(Target):被通知对象代理(Proxy):想目标对象应用通知之后创建的对象(动态代理)切入点(PointCut):切面通知 执行的“地点”的定义
2021-03-28 11:56:41 118
原创 代理模式
代理模式是SpringAop的底层实现机制静态代理角色:抽象角色: 一般由接口或抽象类实现真实角色:被代理的角色代理角色: 代理真实角色后,一般会增加一些附加操作客户:访问代理角色的人静态代理的优点 :真实角色可以专注于自己的业务公共业务交给代理角色,实现业务的分工代理角色可以扩展业务,并集中管理可以在不修改原有代码的基础上,添加一些日志的功能静态代理的缺点 :每生成一个真实对象,就要生成一个代理对象,代码量会翻倍,开发效率会降低动态模式1.基于接口实现A
2021-03-28 09:57:59 111
转载 spring核心之一:控制反转(IOC)和依赖注入(DI)
控制反转(IOC)IoC是Inversion of Control的缩写,有的翻译成“控制反转”,还有翻译成为“控制反向”或者“控制倒置”IOC是一种思想,依赖注入(DI)是对ioc思想的一种实现借助于“第三方”实现具有依赖关系的对象之间的解耦— 软件系统在没有引入IoC容器之前,对象A依赖对象B,那么A对象在实例化或者运行到某一点的时候,自己必须主动创建对象B或者使用已经创建好的对象B,其中不管是创建还是使用已创建的对象B,控制权都在我们自己手上。— 如果软件系统引入了Ioc容器之后,对象A和
2021-03-15 19:48:12 533
转载 工厂模式
一、简单工厂模式简单工厂模式也叫静态工厂模式,将所有的创建对象任务交给了一个工厂类来实现,要想使用对象,直接找工厂类即可。步骤:1.定义抽象类,定义抽象方法2.定义具体的操作类(实现类),继承抽象类,实现抽象方法3.定义简单工厂,定义创建对象方法(根据传递不同的参数类型创建不同的对象)4.调用工厂类创建对象二、工厂方法模式在简单工厂模式当中,是根据需要传递相应的参数去调用工厂中的方法创建对象,但开发人员并不知道哪些参数能够传递,这样就造成返回不了自己想要的对象的后果,工厂方法模式将每个对象
2021-03-11 20:10:03 106
转载 继承
java有四个特征:抽象封装继承多态 继承描述的是事物之间的**所属关系**,是从已有的类中构建出新的类,已有的类称为父类,新的类称为子类,子类具有父类的**数据属性和方法**,并能**扩展**新的属性和方法(**不能继承私有**)。继承的使用(1)使用extends关键字 : class 子类 extend 父类() 继承的优点(1)提高代码的复用性,提高了软件的开发效率(2)让类与
2021-03-11 16:18:52 93
原创 多线程UDP实现在线控制台聊天
/** * 接收信息 * 在本机测试 */public class UDPReciveTest implements Runnable{ private DatagramSocket node = null; private int port;//接收信息的服务端口 private String msgFrom; public UDPReciveTest(int port, String msgFrom) throws SocketException {
2021-01-22 21:23:59 82
原创 springboot+sftp实现文件远程上传
策略:1.环境(centos7系统),作为 ftp文件服务器2.使用nginx,作为静态资源文件服务器,来进行访问一、引入依赖 <!-- Sftp工具 --> <dependency> <groupId>com.jcraft</groupId> <artifactId>jsch</artifactId> <version>
2020-12-10 16:14:15 779
原创 linux安装nginx
简单安装使用 nginx环境:腾讯云(CentOS7)以下为参考官方文档:https://docs.nginx.com/nginx/admin-guide/installing-nginx/installing-nginx-open-source/#1.安装sudo vi /etc/yum.repos.d/nginx.repo #配置yum仓库内容:[nginx]name=nginx repobaseurl=https://nginx.org/packages/mainlin
2020-12-10 15:50:03 94
原创 KVM存储管理 ----使用NFS服务器创建存储池
*实验环境*在VMware Workstation中新建两台虚拟机,一台是node1,另一台是storage。node1是提供KVM虚拟机的,而storage是提供NFS服务的。*实验拓朴*二.使用NFS服务器创建存储池 1. 用storage节点来搭建NFS服务器(同时给每个节点配置一个主机名)systemctl stop firewalld #关闭防火墙systemctl disable firewalldsetenforce 0 #配置
2020-11-22 11:55:13 1265
原创 KVM存储管理 ----使用分区创建存储池
*实验环境*在VMware Workstation中新建两台虚拟机,一台是node1,另一台是storage。node1是提供KVM虚拟机的,而storage是提供NFS服务的。*实验拓朴*一.使用分区创建存储池要求:在宿主机RHEL7上新建一个10G的分区,并且格式化,然后在virt-manager工具上使用此分区新建一个存储池。 1.新建分区fdisk -l #查看硬盘使用情况注:如果空间不够用,可以在设置中添加一块新硬盘(当前实验中新建了一块新的硬盘sdb)fdisk /de
2020-11-22 11:18:13 1097 1
原创 端口被占用?----端口的查询和进程终止
Windows:1.查询端口使用情况netstat -ano|findstr _端口_2.通过id查询该进程tasklist |findstr _id_3.通过进程名杀死进程taskkill /f /t /im _进程名_Linux:1.查询端口使用情况lsof -i:8080 #查看8080端口使用情况2.直接通过 pid 杀死进程kill 22648 #pid 为22648...
2020-11-20 15:57:34 76
原创 docker 简单安装 mysql
docker 安装mysqldocker的使用可见: https://blog.csdn.net/curru/article/details/109684696简单安装mysqldocker pull mysql #安装默认版本的mysql docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql #运行mysql docker ps #查看容器开启情况 ...
2020-11-14 00:11:35 78
原创 docker 的下载与基本使用
docker 的下载与基本使用1.介绍什么是docker?https://blog.csdn.net/kobejayandy/article/details/80866292?biz_id=102&utm_term=docker%E4%BB%8B%E7%BB%8D&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-0-80866292&spm=1018.2118.3001.44
2020-11-13 23:59:38 152
原创 SpringBoot整合Redis 单机测试
1.引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>2.配置#启动redis#redis的数据库索引(默认为0)spring.redis.database=2#redis的服务器地址spring.
2020-11-04 11:11:31 337 1
原创 算法题----承压计算
题目://X星球的高科技实验室中整齐地堆放着某批珍贵金属原料。////每块金属原料的外形、尺寸完全一致,但重量不同。//金属材料被严格地堆放成金字塔形。//// 7// 5 8// 7 8 8// ...
2020-02-15 19:45:10 154
原创 算法题----奇怪的捐赠
//地产大亨Q先生临终的遗愿是:拿出100万元给X社区的居民抽奖,以稍慰藉心中愧疚。//麻烦的是,他有个很奇怪的要求://////1. 100万元必须被正好分成若干份(不能剩余)。每份必须是7的若干次方元。// 比如:1元, 7元,49元,343元,…//////2. 相同金额的份数不能超过5份。//////3. 在满足上述要求的情况下,分成的份数越多越好!////...
2020-02-06 23:42:13 476
原创 算法题----振兴中华
//题目:振兴中华////小明参加了学校的趣味运动会,其中的一个项目是:跳格子。// 地上画着一些格子,每个格子里写一个字,如下所示:(也可参见p1.jpg) // 从我做起振 // 我做起振兴 // 做起振兴中 // 起振兴中华////// 比赛时,先站在左上角的写着“从”字的格子里,可以横向或纵向跳到相邻的格子里,但不能跳到对角的格子或其它位置。一直要...
2020-01-20 18:02:20 343
原创 算法题----找零
//题目://公园票价为5角。假设每位游客只持有两种币值的货币:5角、1元。//再假设持有5角的有m人,持有1元的有n人。//由于特殊情况,开始的时候,售票员没有零钱可找。//我们想知道这m+n名游客以什么样的顺序购票则可以顺利完成购票过程。//显然,m < n的时候,无论如何都不能完成;//m>=n的时候,有些情况也不行。比如,第一个购票的乘客就持有1元。//请计算出这...
2020-01-19 17:59:46 418
原创 算法题----39级台阶
//题目描述://小明刚刚看完电影《第39级台阶》,离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级!//站在台阶前,他突然又想着一个问题://如果我每一步只能迈上1个或2个台阶。先迈左脚,然后左右交替,最后一步是迈右脚,也就是说一共要走偶数步。那么,上完39级台阶,有多少种不同的上法呢?//输出格式://输出一个整数public class Main { static int...
2020-01-15 15:18:23 320
原创 算法题----区间k大数查询
问题描述给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个。输入格式第一行包含一个数n,表示序列长度。第二行包含n个正整数,表示给定的序列。第三个包含一个正整数m,表示询问个数。接下来m行,每行三个数l,r,K,表示询问序列从左往右第l个数到第r个数中,从大往小第K大的数是哪个。序列元素从1开始标号。输出格式总共输出m行,每行一个数,表示询问的答案。样例输入51...
2020-01-14 10:06:49 123
原创 算法----九宫幻方
小明最近在教邻居家的小朋友小学奥数,而最近正好讲述到了三阶幻方这个部分。三阶幻方指的是将1~9不重复的填入一个3*3的矩阵当中,使得每一行、每一列和每一条对角线的和都是相同的。 三阶幻方又被称作九宫格,在小学奥数里有一句非常有名的口诀:“二四为肩,六八为足,左三右七,戴九履一,五居其中”,通过这样的一句口诀就能够非常完美的构造出一个九宫格来。 4 9 23 5 78 1 6有意思的...
2020-01-12 23:59:34 1360
原创 算法---猜年龄
// 美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学。他曾在1935~1936年应邀来中国清华大学讲学。//// 一次,他参加某个重要会议,年轻的脸孔引人注目。于是有人询问他的年龄,他回答说://// “我年龄的立方是个4位数。我年龄的4次方是个6位数。这10个数字正好包含了从0到9这10个数字,每个都恰好出现1次。”//// 请你推算一下,他当时到底有...
2020-01-11 16:07:35 862
转载 算法---罗马数字
题目:罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不...
2020-01-09 17:25:05 467
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人