自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(77)
  • 收藏
  • 关注

原创 java对象为什么要重写equals方法

**如我们定义一个规则:如果这两个对象的内容一致,但是这两个对象可能不是同一个引用,也认为这两个对象是相等的,那么就需要重写equals。**java是一门面向对象语言,遵循一切皆对象的思想,在默认的比较方法equals中,比较的也是两个对象的引用,而不是对象里的内容。equals方法来自祖类Object,默认比的是引用地址如果不重写equals效果如下这两个对象内容一致,但默认的equals比的是地址,则达不到我们我预期结果重写equals比较对象内容,若内容一致,则认为相等,使用ide

2022-04-12 10:49:58 1423

原创 AES加解密工具类

aes的密钥长度可以为128,192,256位,也就是16,24,32个字节长度。一般都用16位长度加密参数有两个,密钥(key)和向量(iv),向量可选是否使用工具类不使用向量mport sun.misc.BASE64Decoder;import sun.misc.BASE64Encoder;import javax.crypto.Cipher;import javax.crypto.spec.SecretKeySpec;public class AES { privat

2022-03-07 17:48:53 1142

转载 Serializable序列化对象,可以将对象转为字节流读写到文件中

文章转载至https://baijiahao.baidu.com/s?id=1633305649182361563&wfr=spider&for=pc写的很好,怕文章丢失,就在这备份一份了~~~张工是一名java程序员,工作5年了,一直从事java开发。最近到某互联网公司面试,做了笔试题后,有一道笔试题是这样子的:Serializable有什么作用,张工没有作答,面谈时面试官又问了,张工回答不出个所以然。面试官:你都工作五年了,连序列化都不知道,你这5年都干些什么了?张工一脸的无助,不

2022-03-03 15:07:48 709

原创 启动一个项目前应该准备的通用工具类

入参,反参结果封装工具类加解密工具类,如AES, MD5HTTP请求工具类日期格式校验,转换的工具类根据身份证提取性别,生日的工具类常见的入参格式合法性校验工具类,如手机格式校验,身份证号码格式校验...

2022-03-02 09:27:12 110

原创 mysql日期格式转换函数date_format(),date_format(create_time,‘%Y-%m-%d %H:%i:%s‘)

select user_id, cust_id, phone_number, openid, user_flag, account, date_format(register_time,'%Y-%m-%d %H:%i:%s') as register_time, platform, common_user_status, date_format(la

2022-03-01 10:58:15 3319

原创 PO和VO和DTO的区别

PO(persistant object) 持久对象,通常对应数据模型(数据库),本身还有部分业务逻辑的处理。可以看成是与数据库中的表相映射的java对象。VO(value object) 值对象,通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要。...

2022-03-01 09:36:36 1796

原创 ps -ef|grep看进程

UID :启动进程的用户PID :进程idPPID :父进程idC :STIME :TTY :TIME :启动该进程消耗的时间CMD :启动该进程使用的命令使用查看java进程ps -ef|grep javaps -ef|grep java查出来的cmdjdk目录 启动命令 jar包...

2022-02-08 17:57:16 1207

翻译 docker入门命令

安装#1、yum 包更新到最新yum update#2、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的yum install -y yum-utils device-mapper-persistent-data lvm2#3、 设置yum源yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo#4、

2021-12-28 18:37:54 91

转载 短链接和长连接

作者:wuxinliulei链接:https://www.zhihu.com/question/22677800/answer/63806275来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。首先介绍下短链接和长连接的区别:短连接连接->传输数据->关闭连接 比如HTTP是无状态的的短链接,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接。 具体就是 浏览器client发起并建立TCP连接 -> client发送Htt

2021-12-28 14:05:38 2748

原创 java虚拟机

java虚拟机有很多款。HotSpot是最流行的hotspot虚拟机内存结构栈,堆,方法区,本地方法栈,程序计数器栈栈就是执行方法的内存区域,方法的执行时压栈,执行结束弹栈java支持多线程,有多个栈。栈满错误StackOverflowError堆堆内存种开辟对象的空间,存储真正的数据,栈方法里定义的变量只是一个引用,指向堆里对象数据。jdk1.6里,堆分为新生区(伊甸园),幸存区1,幸存区2,老年区,永久区。Class对象在方法区里。jdk1.8后,没有永久区了,加...

2021-04-21 19:53:25 59

原创 分布式与微服务,spring,dubbo,springboot,springcloud之间的关系

springBoot&Spring什么关系?没有关系springboot的功能和spring完全不同。*spring服务于代码,简化了对象创建与管理*boot服务于项目,简化了项目配置文件spring是框架的一种,用来写代码。springboot简化框架的使用,用来快速搭建项目配置。 spring作为一种框架,springboot自然也简化了spring的开发,除了spring,mybatis,tomcat等三方框架和工具也能使用boot快速集成Spring Cloud&Spri

2021-04-14 14:25:09 444 1

原创 springSecurity。用户 - 角色 - 权限

用户:就是当前浏览器登录的用户角色:校验账号密码后,按配置给用户分配角色权限:角色拥有权限。用户本身没有权限,当给用户赋予了角色后,用户才拥有权限

2021-04-07 16:24:22 156

原创 mybatis逆向工程模糊查询的参数需要带“%”

添加条件用XXXLike方法时,直接给keyword参数查不到数据必须带上"%"才可以

2021-04-03 16:52:34 187

原创 @EnableDiscoveryClient不用也可以服务注册与发现

1 启动服务注册服务端@SpringBootApplication@EnableEurekaServer //开启Eureka的服务端public class EurekaServerStart { public static void main(String[] args) { SpringApplication.run(EurekaServerStart.class); }}2 把@EnableDiscoveryClient注掉,在启动客户端服务者@Sp

2021-03-30 14:35:07 4511 1

原创 solr高亮查询

1 普通的查询 Map resultMap = new HashMap(); //1.创建查询对象 Query query = new SimpleQuery(); //2.创建查询条件选择器 item_keywords 域(复制域) is 分词 Criteria criteria = new Criteria("item_keywords").is(searchMap.get("keywords")); //3.添加查

2021-03-26 14:30:26 415 1

原创 为什么solr查询快?

先看一组数据常用的汉字和词语也就4000来个,但是要搜索的数据是千万级别的。在千万条数据的库里用"select * from tb_item where title like %keys%"搜索一次商品,要遍历一千万个记录,还是模糊查询,查询效率太低那么就可以用汉字和词语来当索引,将title包含的keys都拆分出来,然后在keys上存这个商品记录的地址,也就是让keys当索引。搜索时不在逐个遍历数据库,而是通过这个索引把关联到的商品都给找出来。solr就是利用分词实现的一个高效搜索引擎

2021-03-25 14:54:55 382

原创 maven聚合工程的父工程pom文件标签解释

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/mav

2021-03-24 20:23:37 245

原创 dubbo消费者是通过服务名(接口名)调用的提供者

使用dubbo提供者配置<!-- 配置dubbo对外暴露的端口号 20880--> <dubbo:protocol name="dubbo" port="20883"/> <!-- 声明服务名称--> <dubbo:application name="dongyimai_content_service"/> <!-- 配置注册中心地址--> <dubbo:registry a.

2021-03-24 16:24:42 1622

原创 springDataRedis的使用

依赖springDataRedis是对jedis的封装,jedis依赖也要加<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> </dependency> <dependency> <groupId>o.

2021-03-24 15:24:26 201

原创 rdm不能连接redis解决

打开redis安装目录的/bin下的redis/redis.conf文件关掉受保护模式protected-mode 值改为no

2021-01-04 16:14:22 3399 7

原创 linux文件的权限

egdrwxr-xr-x1 3 3 3表示d rwx r-x r-x1位 : 文件类型,目录2-4位:所属用户的权限,可读,可写,可执行5-7位:所属用户同组用户的权限,可读,不可写,可执行8-10位:所属用户非同组用户的权限,可读,不可写,可执行r 可读 权重4w 可写 权重2x 可执行 权重1...

2020-12-31 23:02:13 89

原创 linux用户管理

用户在/home目录下创建用户useradd 选项 用户eg: useradd zhangsanuseradd lisi…选项:-g:表示指定用户的用户组,值可以是用户组的id,或组名-G:表示指定用户的附加组,值可以是用户组的id,或组名-u:uid,用户的id(用户的标识符)系统默认会从500之后按顺序分配uid,如果不想使用系统分配的,可以通过该选项自定义。修改用户密码passwd 用户名切换用户su 用户名删除用户userdel 选项 用户名userdel -r z

2020-12-31 22:28:23 47

原创 普通开发者最常使用的linux命令和目录

目录/ 系统根目录etc: 系统配置文件目录root: root用户目录home: 其他用户目录usr: 安装的软件bin: 可执行命令命令ls 目录:列出目录ll 目录:长文件形式列出目录pwd: 查看当前目录cd:切换目录mkdir:创建目录touch:创建文件mv:移动文件rm:删除文件rm -r:删除目录rm -rf:不询问删除目录vi: 文本编辑器i: 编辑文件esc: 退出编辑shift : q! 回车,不保存退出shift : wq 回车,保存退出

2020-12-31 21:46:33 82

原创 linux常用命令和目录结构

centos6环境目录结构/ 系统的根目录,linux没有盘符,整个系统只有一个根目录图形化界面下就是这个非图形化界面目录介绍etc: linux系统的配置文件目录root: root用户的家目录home: 除root用户外的所有用户目录。 一个linux系统可以有多个用户共同使用,root是最高权限用户,老总usr: 存放的是用户所安装的软件bin: 存放可执行命令文件。 binary(二进制),可执行文件都是二进制文件。ls, vi, cat, mkdir, rm,pwd

2020-12-31 21:44:04 149

原创 centos 修改/etc/resolv.conf配置域名解析重启之后自动还原解决

centos6.4版本修改 etc/resolv.conf配置nameserver后可以联网,但是重启之后,该文件又被初始化,没有nameserver配置了解决办法两个命令chattr +i 对文件加锁chattr -i 对文件解锁修改完etc/resolv.conf之后执行 chattr +i /etc/resolv.conf对文件加锁以后如果需要修改etc/resolv.conf执行 chattr -i /etc/resolv.conf对文件解锁...

2020-12-30 19:26:21 1445

原创 springmvc跳转路径有forward和redirect时,视图解析器不拼接路径

配置视图解析器<!--视图解析器--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/pages/"> </property> <property name="suffix" value=".jsp"></property&

2020-12-28 17:13:40 781

原创 springmvc执行流程

首先初始化DispatcherServlet在web.xml里配置<servlet> <servlet-name>DispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> .

2020-12-24 22:47:17 103 1

原创 springmvc核心配置

最原始标准配置<!--包扫描--> <context:component-scan base-package="com.wh.controller"></context:component-scan> <!--请求处理器映射器--> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping".

2020-12-24 22:20:23 94

原创 spring事务管理是由aop实现的

spring事务管理基于aop事务管理类DataSourceTransactionManager本质就是一个切面类Aspect切点就是service层里的方法。当service里的事务没有完全执行时,DataSourceTransactionManager的异常增强对事务进行了回滚rollback。当事务完全执行完毕,DataSourceTransactionManager的后置增强对事物进行了提交commitaop是基于JDK动态代理实现的。增强在代理对象触发的invoke()方法里invo

2020-12-24 22:19:20 896

原创 springAOP原理---JDK动态代理

springAOP原理执行连接点方法时,没有直接进入连接点方法,而是进入了JDK动态代理对象,代理对象调用该方法,被invoke拦截,先执行了切面的增强方法,然后method.invoke()反射调用了真正的连接点方法切面Aspect:写增强方法的类,有前置增强,后置增强,异常增强,环绕增强等切面类里的方法是要增强到切入点的多有方法的。切入点里有很多方法,所以叫面切入点PointCut: 被选中将会进行增强的方法连接点joinPoint:程序执行时真正执行到的切入点方法就是连接点连接点一定时切

2020-12-23 22:53:57 108

原创 代理设计模式&JDK动态代理

客户与接口:调用关系。客户调用的是向上转型后的对象,一般是代理类对象接口与代理类和委托(目标)类 : 实现关系代理类与委托类(目标类): 多对一以小米的营销为例小米公司有一套营销标准(接口)。小米公司自己实现了这套标准(委托类),但是全国销售系统庞大,小米公司作为委托方,在各地设代理商(代理类)来销售,但是代理商必须按小米的营销标准来,即要实现小米制定的接口。但是代理商实现的接口并没有直接操作商品的能力,只能调用总部授权方的方法去操作商品**我们(客户类)**在消费时,不去找委托类(小米总.

2020-12-23 21:12:58 52

原创 spring注解开发常用注解

控制反转@Component 泛指组件@Repository DAO层@Service 服务层@Controller 控制层属性注入@Autowired 按类型注入,如多个满足条件,则按名称注入,没有该名称报错@Resource 按名称注入

2020-12-23 19:55:49 62

原创 spring集成junit4

@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations = "classpath:配置文件")demo@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations = "classpath:applicationContext.xml")public class SpringJunitTest { @Autowired

2020-12-23 19:43:57 107

原创 spring整合web(spring监听webApp启动,加载配置文件时机)

做测试时可以手动创建ApplicationContext容器对象。但是当部署到tomcat里,需要让tomcat去加载配置并创建ApplicationContext容器对象在web.xml里配置 <!--全局参数--> <context-param> <!--参数名必须是contextConfigLocation,不能修改。ContextLoaderListener会根据这个属性值去加载配置文件--> <param-na

2020-12-23 19:36:30 104

原创 spring集成mybatis配置

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLo

2020-12-23 19:26:54 91 1

原创 简单的模拟一个Spring IOC (非源码)

在使用spring框架时,不在程序里new对象,而是将对象都交给了spring去管理,在需要对象时,去spring容器里获取例如,在spring配置文件里定义一个bean<bean id="userDao" class="com.wh.dao.impl.UserDaoImpl"></bean>在需要UserDaoImpl对象时,不在去new,而是直接问容器要public void testInversion(){ ApplicationContext app

2020-12-21 19:55:52 49

原创 mybatis使用分页助手

1.jar包<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.1.10</version> </dependency>2.在mybatis主配置文件里添加分页助手插件&

2020-12-21 19:31:28 551

原创 六步学会mybatis——----第六章:逆向工程

逆向工程操作步骤1.jar包<dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>1.3.7</version> </dependency>2.创建生成

2020-12-20 23:10:48 86

原创 六步学会mybatis---------第五章:动态sql

1.if标签<select id="selPersons" parameterType="Map" resultMap="PersonResultMap"> SELECT * FROM person where 1=1 <if test="name !=null and name != ''"> and p_name = #{name } </if>

2020-12-20 22:54:30 66

原创 六步学会mybatis---------第四章:多表查询拆分成单表查询,含延迟加载(懒加载)及优化方案

数据库联表查询基于笛卡尔积,如果数据量大,效率低,耗内存一种优化方案就是不使用联表查询,拆分成单表查询在加上使用延迟加载,可以很大的提高效率,节省资源就以多对一和多对多为例了,逻辑都是一样的多对一public class Employee { private Integer id; private String name; private String gender; private Integer age; // 多对一 private Depar

2020-12-20 22:40:01 2024 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除