- 博客(64)
- 资源 (4)
- 收藏
- 关注
原创 2021-07-06
IDEA设置类注解和方法注解(详解)一、设置类注解模板(在创建类的时候自动填充模板)/** * @Description: <br> * @Author: zhengzhongli * @CreateDate: Created in ${DATE} ${HOUR}:${MINUTE} <br> */
2021-07-06 17:38:17
163
原创 传递模型数据到视图中+jstl包
导入jstl相关包standardb包放入Tomcat的lib目录下jstl包放入web-inf/lib中没有这两个包,jsp解析时会报错传递模型数据实例@Controller@RequestMapping("/spittles")public class SpittleController { private SpittleRepository spittleRepository; @RequestMapping(method = RequestMethod.GET) public
2020-07-26 11:54:30
206
原创 springMVC起步-基本控制器测试
配置DispatcherServletpackage com.zachary.config;import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;public class SpringWebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { @Ov
2020-07-25 10:55:55
243
原创 在XML中申明切面
代码示例:Performance接口public interface Performance { void perform(String performContent);}Performance实现类@Componentpublic class Concert implements Performance { @Override public void perform(String performContent) { System.out.println(performContent
2020-07-19 21:43:33
187
原创 通过注解引入新功能
使用Spring AOP,我们可以为Bean引入新的方法。@DeclareParents示例通过@DeclareParents注解,将Encoreable接口引入到Performance bean中。Performance接口public interface Performance { void perform(String performContent);}Performance接口实现@Componentpublic class Concert implements Perform
2020-07-19 16:27:07
240
原创 定义切面通知
@AspectSpring使用AspectJ来申明通知方法。注解通知@After通知方法会在目标返回或抛出异常时调用@AfterReturning通知方法会在目标返回后调用@AfterThrowing通知方法在目标抛出异常时调用@Around通知方法将目标方法封装起来@Before通知方法在目标方调用前执行@Pointcut可以通过@Pointcut注解申明频繁使用的切点表达式@EnableAspectJAutoProxy启动Aspect
2020-07-13 17:14:04
223
原创 定义简单的切面
连接点方法:preform()public interface Performance { void preform();}定义实现类@Componentpublic class Concert implements Performance { @Override public void preform() { System.out.println("表演开始"); System.out.println("表演中......"); System.out.println("表演
2020-06-29 00:25:56
802
原创 SpEL样例
public class BlankDisc implements CompactDisc { public String title; public String artist; public List<Object> tracks; public BlankDisc(String title, String artist, List<Object> tracks) { this.title = title; this.artist = artist; th
2020-06-28 00:12:45
259
原创 运行时值注入
直接注入Bean直接注入示例:@Bean("blankDisc1")@Profile("dev")@Primarypublic BlankDisc getDevBlankDiscPrimary() { BlankDisc blankDisc = new BlankDisc(); blankDisc.setTitle("Sgt. Pepper's Lonely Hearts Club Band dev Primary"); List<String> tracks = new Arr
2020-06-27 17:59:08
263
原创 Bean的作用域
在默认情况下,Spring应用上下文中所有的Bean都是以单例(singleton)的形式创建的。Spring定义了多种作用域,可以基于这些作用域创建Bean:**单例(Singleton):**整个应用中只创建Bean的一个实例。**原型(Prototype):**每次注入,或通过Spring上下文获取时,都会创建一个新的Bean实例。**会话(Session):**在web应用中,为每个会话创建一个Bean实例。**请求(Request)????*在web应用中,为每个请求创建一个Bean实
2020-06-27 12:05:43
141
原创 条件化Bean,限定自动转配Bean
条件化Beanprofile与环境@Profile注解在类上使用使用@Profiledev环境模拟@Configuration@Profile("dev")public class DevelopmentProfileConfig { @Bean("blankDisc") public BlankDisc getBlankDisc() { BlankDisc blankDisc = new BlankDisc(); blankDisc.setTitle("Sgt. Pepper'
2020-06-26 22:02:32
194
原创 通过XML配置Bean
最简单的Spring XML配置<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans
2020-06-22 22:56:26
257
原创 装配Bean
自动装配Bean相关注解@Component组件扫描时,如果类上有@Component注解,为其创建bean注解参数说明:@Component没有参数时,默认将类名首字母小写作为bean的ID@Component(“XXX”)设置bean的ID@NamedJava依赖注入规范(Java Dependency Injection)中所提供。Spring支持将@Named作为@Component注解的替代方案。两者有细微的差异,但是在大多数场景可以相互替换。@Autowired@Inje
2020-06-21 20:50:45
206
原创 Spring最简单的自动化装配Bean,总结使用junit测试遇到的坑
soundsystem例子创建CD接口package com.zachary.soundsystem;/** * @author Zachary.Zheng * @version 1.0 * @date 2020年6月20日 下午9:20:07 */public interface CompactDisc { void play();}创建SgtPeppers类实现CompactDisc 接口,使用@Component注解@Componentpublic class SgtPe
2020-06-21 11:26:19
418
原创 下载spring框架jar包
Spring官网地址https://spring.io/1.打开Spring Framework的开源项目Spring Framework概述Spring Framework文档和APISpring是开源项目,所以相关依赖jar包可在GitHub中找找到 Spring Framework Artifacts打开Spring Artifactory有三个版本可供选择,一般选择稳定的release版本打开依赖包地址,嫌麻烦的可以忽略前面的步骤https://repo.spri
2020-06-21 10:49:12
414
原创 tar包安装
在Linux操作系统中,常用的软件包一共有两种.rpm包:相当于Windows中的exe软件包.tar.gz包:未编译的源码包软件的编译需要使用gcc编译器(Linux安装,开发工具->gcc,gcc c++)tar包解压基本语法tar -zxf 包名配置软件的安装路径与库操作基本语法./configure --prefix=/usr/local/apache--enable-so可以执行文件 安装目录,不存在会自动创建 以动态链接库的形式进行安装以上指令可以改为编
2020-06-18 06:38:29
3066
原创 FTP服务(上传于下载)
安装ftp软件进入光驱找到第一张光盘启动vsftpd服务基本语法service vsftpd start|restart|stop|status示例代码:FTP服务的作用ftp服务的作用就是为了实现文件的上传和下载设置防火墙执行setup命令:选中防火墙配置选中定制重启防火墙确定覆盖关闭SeLinuxSELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统
2020-06-14 16:00:18
362
原创 配置Linux网络
网络配置的位置/etc/sysconfig/network-scripts/ifcfg-eth0DEVICE:代表设备名称,eth0是设备第一块网卡的名字HWADDRTYPEUUIDONBOOT::网卡是否随计算机自动启动,实际服务器次参数要设置为yesNM_CONTROLLEDBOOTPROTO:网络是否自动获取,dhcp(自动获取),static(手动设置)IPADDR:手工设置的IP地址NETMASK:子网掩码,一般为255.255.255.0GETWAY:默认网关(和路由器配
2020-06-14 15:16:27
251
原创 Linux系统网络启动失败
_nm_object_get_property: Error getting ‘State’ for /org/freedesktop/NetworkManager/ActiveConnection/Linux系统网络启动失败出错原因用图形用户界面工具(setup)和/etc/sysconfig/network-scripts/ifcfg-ethx配置不同步造成的。解决办法将setup的配置和/etc/sysconfig/network-scripts/ifcfg-ethx与配置保持同步set
2020-06-14 15:05:12
1745
原创 Linux文件管理
查找文件find [目录列表] [匹配选项] [匹配标准]相关选项-name:根据文件名称进行搜索-group:根据文件所属组进行搜索-user:根据文件的拥有者进行搜索扩展Shell指令:locate指令,用于检索数据(查找文件)locate 文件名实例代码:...
2020-06-14 14:22:20
188
原创 Chrome插件链接
IDM Integration Module官方扩展链接:https://chrome.google.com/webstore/detail/idm-integration-module/ngpampappnmepgilojfohadhhmbhlaek/related
2020-06-07 18:33:53
2860
原创 文件,文件夹操作(权限设置+操作)
文件权限r:可读权限,值为4w:可写权限,值为2x:可执行权限,值为1文件权限说明文件夹权限755文件权限644一个文件或文件夹的三种用户,第一位是拥有者,第二个是组内用户,第三个是组外用户。权限举例说明:文件夹权限为755第一位:拥有者拥有最高操作权限7 =(4+2+1)= rwx第二位:组内用户拥有的操作权限5 = (4+1) = rx第三位:组外用户拥有的操作权限5 = (4+1) = rx使用ls指令查看文件权限ls -l user.txt第一列:文件权限一共
2020-06-06 12:58:45
1054
原创 用户权限设置
赋予普通用户特殊权限普通用户:只能执行/bin目录下的指令超级管理员:可以执行/bin目录和/sbin目录下的权限。给普通用户赋权场景:当普通用户需要执行系统指令时,不能将管理员密码给普通用户,可以选择为普通用户赋予部分权限。文件位置:/etc/sudoers使用vim打开/etc/sudoers文件如下:系统管理员配置是所以权限普通用户权限配置实例给普通用户配置权限使用到的知识点:whereis指令功能:查看系统治理所在位置whereis useradd设置添加用户,关机
2020-06-06 11:14:01
610
原创 用户与组
1用户与组的关系同一个用户可以属于多个组,但只有一个主组。与组相关的文件组文件文件位置:/etc/groupvim /etc/group 执行命令结果如下:第1列:组名称第2列:一个组密码占位符,真实的密码在/etc/gshadow文件中第3列:组id,0代表root超级组,1~499是系统组,500以后是自定义组第4列:组内用户(附属组内用户)组密码(了解,新版本已经没有组密码了)文件位置:/etc/gshadowvim /etc/gshadow第1列:组名称第2列
2020-06-05 23:32:20
533
原创 默认系统界面配置分析+挂载文件系统分析
默认系统界面配置分析选择登录界面Linux操作系统一共有两种界面:图形界面,文字界面。开机时默认打开哪种界面可以在/etc/inittab中配置。文件位置: /etc/inittab使用vim命令打开:vim /etc/inittab 结果如下根据文件显示,Linux操作系统运行级别一共有7种模式运行级别0:关机模式(不要设为默认模式,否则启动就会关机)运行级别1:单用户模式(系统维护)运行级别2:多用户模式(不带NFS网络共享服务)运行级别3:多用户模式(带NFS,字符模式)运行级
2020-06-05 17:24:07
263
原创 Linux单用户模式+Linux引导系统简介+设置装载口令
Linux单用户模式重启Linux系统shutdown -r 0reboot重启后,在读秒时按下小e,进入菜单的编辑模式再次按e进入选择第二个菜单,再次按e进入改为修改完成后回车返回目录后单击小b,重启计算机管理员权限修改管理员密码passwd root重启系统reboot重新登录后会进入图形界面,此时就可以用新的密码登录系统了。引导系统选择操作系统文件位置:/etc/grub.conf实例代码使用ls -l查看文件的真实路径使用vim编辑器打
2020-06-04 23:13:28
252
原创 Linux系统软件的安装与卸载
查询已安装的软件rpm指令:查看,安装和卸载Linux系统下的rpm软件包。rpm软件包:类似与Windows里面的.exe。*.tar.gz软件包:未编译的软件包,安装时需要先编译再进行配置安装。rpm -qa-q:query缩写,代表查询-a:all缩写,代表查询所有已安装软件管道命令rpm -qa | grep vim|:称为管道后面的是搜索范围,只查询vim软件卸载以安装软件rpm -e 软件名称删除是有其它依赖时,需要先删除所以依赖软件删除时光标停顿,删除完没有提升安
2020-06-04 22:31:26
414
原创 Liunx系统目录分析
/bin:系统目录文件,存放系统指令。比如ls,mkdir等指令/dev:系统设备目录,硬盘光驱都在这个目录下/home:用户的家,非管理员用在/home目录下有自己的家。如/home/zachary/lib:库文件目录。库文件一共分为两种*.so动态库文件,*.a静态库文件/media:多媒体目录,光驱、软驱/mnt:挂载目录。如:U盘/mnt/udisk/proc:内存目录/sbin:s是super,超级指令目录,专门给超级管理员使用的/tmp:temp缩写,代表临时目录/var:经.
2020-06-04 22:07:10
192
原创 常用Shell命令+vi编辑器
Shell命令指令单独存在指令带选项指令带选项带参数ls查看当前目录的所有文件相关选项-l:list缩写,代表以列表形式展示所以文件-a:all缩写,代表显示所有文件(包括隐藏文件“.”)lsls -l(简写ll) l:list 简写ls -a a:all 简写ls -alpwd显示当前位置cdcd+ 路径:跳转到指定目录,根目录使用“/”(/etc)cd+…:调整到上一级目录cd+~:调整到当前登录用户的加clear清空控制台loginloginout
2020-06-04 21:42:34
675
原创 使用“持久性”
对比序列化前后的对象地址同一个字节序列号数据反序列化得到的相同对象的地址也相同。不同的流产生了完全不同的对象。package com.zachary.io.serializable;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.io.Se
2020-06-03 16:55:49
250
原创 序列化控制
实现Externalizable重写writeExtrenal()和readExternal()方法。这两个方法在序列化和反序列化的时候会自动调用。package com.zachary.io.serializable;import java.io.Externalizable;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.Obj
2020-06-03 16:46:34
203
原创 对象序列化
Java序列化将那些实现了Serializable接口的对象转换成一个字节序列,并能够将字节序列恢复成原来的对象。利用它可以实现轻量化的持久性。对象序列化加入到语言中是为了支持两种主要特性。一是Java远程调用,它使存活于其它计算机上的对象使用起来就向存活于本机一样。当向远程发送数据时,需要序列化来传送参数和返回值。只要对象实现了Serializable接口,对象序列化出理就会非常简单。ObjectOuputStream ObjectInputStream对象序列化demopackage c.
2020-06-03 16:26:05
136
原创 压缩
压缩类功能CheckedInputStreamGetCheckSum()为任何InputStream产生校验和(不仅是解压缩)CheckedOutputStreamGetCheckSum()为任何OutputStream产生校验和(不仅是压缩)DeflaterOutputStream压缩类基类GZIPOutputStream一个DeflaterOutputStream,用于将数据压缩成为zip文件GZIPInputStream一个InflaterInpu...
2020-06-02 15:59:01
248
原创 文件加锁
文件加锁通过对FileChannel调用lock()或tryLock(),可以获得整个文件的FileLock。tryLock()是非阻塞的,它试图获得锁,如果不能获得将直接从方法调用中返回。lock()是阻塞的,它会阻塞进程直到锁可以获得,或调用lock()的线程中断,或调用lock()的通道关闭。FileLock.release()可以释放锁。参数说明tryLock(long position, long size, boolean shared)lock(long position, l
2020-06-02 14:24:26
296
原创 内存映射文件
MappedByteBuffer内存映射文件允许我们修改和编辑那些因为太大不能放入内存的文件。java.nio.channels.FileChannel.map(MapMode mode, long position, long size) throws IOExceptionpackage com.zachary.io.nio.mapped;import java.io.FileNotFoundException;import java.io.IOException;import java.
2020-06-02 14:03:45
171
原创 缓冲器操纵数据
ByteBuffer是将数据移进移出的唯一方式,并且只能创建基本类型的缓冲器,或者通过”as“从ByteBuffer中获得缓冲器。缓冲器细节方法功能capacity()返回缓冲区容量clear()清空缓冲区,将position设置为0,limit设置为容量。可以调用次方法复写缓冲区flip()将limit设置为position,position设置为0。用于为读取缓冲区数据做准备limit()返回limit值limit(int lim)设置limit
2020-06-02 13:53:57
163
原创 获取基本数据类型,视图缓冲器
获取基本数据类型java.nio.ByteBufferasCharBuffer() : getChar()asShortBuffer() : getShort()asIntBuffer() : getInt()asLongBuffer() : getLong()asFloatBuffer() : getFloat()asDoubleBuffer() : getDouble()package com.zachary.io.nio;import java.nio.ByteBuffer;
2020-06-02 13:28:09
205
原创 数据转换
数据转换java.nio.charset.CharsetString encoding = System.getProperty(“file.encoding”); // 发现默认字符集,产生代表字符集名称的字符串System.out.println(Charset.forName(encoding).decode(buffer));对数组编码再写ByteBuffer.wrap(“Some text”.getBytes(“UTF-16BE”))char类型转换器buffer.asC
2020-06-02 13:07:00
433
原创 FileChannel
FileChannelByteBuffer唯一直接与通道交互的缓冲器。FileInputStream,FileOutputStream,RandomAccessFile能够产生FileChannel。Reader和Writer不能产生Channel。但是java.nio.channels.Channels类提供了实用方法,可以在通道中产生Reader和Writer。package com.zachary.io.nio;import java.io.File;import java.io.FileI
2020-06-02 13:06:43
213
OCA OCP Practice Tests Exam 1Z0-808 and Exam 1Z0-809.pdf
2019-11-09
fireshot-chrome-plugin.exe
2019-11-09
1z0-808-pdf.pdf
2019-11-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人