- 博客(34)
- 收藏
- 关注
原创 java工程使用maven进行差异化环境配置
项目分为测试环境、预发环境、生产环境等等不同环境,每个环境有每个环境的配置,下面使用maven进行差异化环境配置。1.项目目录结构为 其中application.properties指定公共配置和引入哪个环境的配置,在其他环境配置差异化的配置,其中 配置文件里的 ${env-flag} 是打包时替换的内容,名字随便写,但要与pom里的配置对应上,后续会介绍配置文件的内容就配置完成,下面在pom文件里配置相关内容1.在build标签下添加如下节点,这段配置是最常规的配置...
2021-05-17 17:44:54
436
1
原创 InnoDB-锁
1.什么是锁。锁机制用于管理对共享资源的并发访问。InnoDB会在行级别上对数据上锁,也会在数据库内部其他多个地方使用锁,从而允许对多种不同资源提供并发访问。2.lock 与 latch在数据库中,lock与latch都可以被称为锁。但是两者有着截然不同的含义,本博文主要关注lock。latch一般称为闩(shuan)锁(轻量级锁)。其要求锁定时间非常短,在InnoDB中,latch又可以分为mutex(互斥量)和rwlock(读写锁)。其目的是用来保证并发线程操作临界资源的正确性,并且通常
2021-02-23 15:08:16
2081
10
原创 JVM-内存结构和JMM-内存模型
JAVA的内存模型:JVM中的堆、栈、方法区(方法区是JVM规范的概念定义,在HotSpot虚拟机中,1.7版本对方法区的实现是永久代,1.8版本对方法区的实现是元空间,元空间使用本地内存Native Memory 实现的,也就是他的内存不在虚拟机内,理论上受限于物理机的内存)、程序计数器等等是Java虚拟机的内存结构,Java程序启动后,会初始化这些内存数据。如下图内存模型就是另外一个东西。什么是内存模型?计算机中,cpu与内存交互最频繁,相比内存,磁盘读写太慢,内存相当于高速缓冲区,但是内存
2021-01-27 18:03:25
595
3
原创 自定义注解的使用
1.定义一个自定义注解package xxx.xxxx.xxxx.aop;import org.springframework.core.annotation.Order;import java.lang.annotation.*;@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)@Documented@Order(value = Integer.MAX_VALUE)public @interface Pre
2020-12-10 20:21:49
707
原创 eclipse创建的maven工程没有test目录解决办法
eclipse创建的maven项目或者从git仓库下载的项目,没有test目录,但是直接创建却显示已经存在,需要在相关文件夹下手动创建。进入到src目录下,里面有一个main目录,同级创建test/java再去工程上刷新就出现了...
2020-08-24 10:27:22
2041
原创 Mysql数据库使用Mybatis批量更新的几种方式
经过多次项目经历,总结几种更新方式的对比,作以下总结。待更新对象 User 。实际项目中,可能会批量更新一组数据第一种:在程序中通过for循环,循环提交,这种方式就无所谓更新的数据是怎样的,多次调用mapper提交数据,与数据库交互多次,性能差,实现简单。如果更新大批量数据不建议使用这种方式例子代码实现如下: java代码: for(User user:list){ userMapper.update(user); }XML代码:<upd...
2020-05-21 16:48:19
2159
原创 类的加载机制-ClassLoader
ClassLoader :public abstract class ClassLoader , extends Object 类加载器是负责加载类的对象。ClassLoader 类是一个抽象类。如果给定类的二进制名称,那么类加载会试图查找出或生成构成类定义数据。一般策略是将名称转换为某个文件,然后从文件系统读取该名称的 “文件”,每个 Class 对象都包含一个对定义...
2020-04-02 11:03:28
232
原创 几种常见的单例模式
本文根据分布式系统基于redis获取的分布式锁的对象,简单对比几种单例模式。需要引入依赖 <dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> &l...
2020-01-06 14:37:01
430
原创 web项目读取资源目录下的.properties配置文件
package org.springframework.beans;import java.util.Properties;import org.junit.Test;import org.springframework.core.io.ClassPathResource;import org.springframework.core.io.Resource;import org.s...
2019-12-09 17:11:52
527
原创 获取请求主机的IP和获取本机IP
获取请求主机的IP,如果请求通过代理进来,则透过防火墙获取真实IP地址;public final static String getIpAddress(HttpServletRequest request) throws IOException { // 获取请求主机IP地址,如果通过代理进来,则透过防火墙获取真实IP地址 String ip = re...
2019-09-21 13:53:34
325
原创 Shiro 搭建
使用ssm框架,xml和注解组合的方式搭建shiro框架,初学只搭建最简单的框架,提供认证,授权,密码管理等基本用法一、搭建一个ssm项目,不需要连接数据库,这里用代码写死,可以正常访问即可,在这个项目基础上搭建shiro二、导入shiro依赖<!-- shiro 依赖 --> <dependency> <groupId...
2019-07-14 12:59:39
811
原创 用cxf框架搭建webservice服务(spring的xml方式和springboot方式)
一、基于cxf框架,在spring框架中搭建webservice服务步骤1,创建一个maven项目,首先导入spring相关依赖,再导入cxf依赖,配置tomcat插件等相关插件 <properties> <spring.version>4.2.4.RELEASE</spring.version> </properties> ...
2019-07-12 01:28:46
2216
原创 java代码绘制验证码图片
@RequestMapping(value = "/img") public void makeImage(HttpServletRequest request, HttpServletResponse response) throws IOException { int charNum = 4 ; int width = 20...
2019-07-05 16:56:16
313
原创 Dubbo基础(二):标签
服务方和消费方的通用配置:<dubbo:application>(ApplicationConfig)当前应用信息,可以在控制台中直接查看的,一般设置为当前应用的名字即可。 <dubbo:registry>(RegistryConfig)指定zookeeper的注册中心。服务方标签:<dubbo:provider>(provider...
2019-06-15 01:25:01
449
原创 Dubbo基础 (一):简介及搭建
Dubbo是:一个分布式、高性能、透明化的RPC服务框架。 提供服务的自动注册、自动发现等高效服务自理方案。 主要功能包括:高性能NIO通讯及多协议集成,服务动态寻址与路由,软负载均衡与容错,依赖分析与降级等。Dubbo结构与功能:container负责启动、加载、运行provider provider启动时,向registry注册自己的服务 cousumer启动时,向reg...
2019-06-15 00:32:42
381
原创 ActiveMQ 入门(五)-通配符分层订阅、死信队列
一、通配符式订阅:Wildcards 用来支持联合的名字分层体系(federated name hierarchies)。它不是JMS 规范的一部分,而是ActiveMQ 的扩展。ActiveMQ 支持以下三种1、"." 用于作为路径上名字间的分隔符。 如:AAA.bbb.CCC ...
2019-06-12 18:02:18
797
原创 ActiveMQ入门(四)-消息的持久化订阅、应答模式(可靠性)
一、持久化订阅前几篇博客中提到,消息的两种模式,点对点(queue)和发布订阅(topic),queue模式下,消息是会被持久化到磁盘,而topic模式下,消息会随着服务的停止而消失,但是某些场景下,我们想将topic消息也进行持久化,只需要进行如下改动。生产者端:只需要将目的地创建成Topic模式即可,其他不用变 session.createTopic("xxxx");imp...
2019-06-09 03:34:30
1676
原创 ActiveMQ 入门(三)——嵌入式 和 消息持久化方案
ActiveMQ 高级用法一、嵌入式MQ在实际开发中,如果项目没能给太多资源,而现在业务中又需要用到MQ,可以考虑嵌入式MQ,嵌入式MQ不需要安装ActiveMQ,只需要导入相关依赖就可以1、pom文件需导入依赖:(在前两篇关于MQ的依赖的基础上导入这个依赖) <dependency> <groupId>org....
2019-06-08 17:05:34
1257
原创 ActiveMQ入门(二)——Request-Response 请求应答模式
ActiveMQ基本操作一、SpringBoot方式实现ActiveMQ的 Request-Response 请求-响应模式上一篇实现的生产者负责发送消息,另一方负责处理,现在实现双方都能给对方发消息,请求-应答这种方式很普遍。生产者端配置类:import javax.jms.Destination;import org.apache.activemq.ActiveMQCo...
2019-06-06 19:28:33
415
原创 ActiveMQ入门(一)
一、概述: 消息中间件属于分布式系统中的一个子系统,关注数据发送和接收,利用高效可靠异步消息传递机制对分布式系统中的其余各个子系统进行集成。二、与RPC的区别: RPC(Remote Procedure Call—远程过程调用),他是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络的技术三、应用场景: 异步处理,应用解耦,流...
2019-06-04 17:33:11
318
原创 Docker-基础(一)
一、简介:Docker是一个开源的应用容器,基于Go语言,遵从Apache2.0协议开源,Docker可以让开发者打包他们的应用到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口,容器性能开销极低。二、Docker架构:Images:docker镜像,用于创建Docker容器的模板。Contai...
2019-05-29 16:55:25
152
原创 get提交,前后台传值解决乱码
前台传中文到后台,如果get提交可能会产生乱码,其中之一解决思路是转码,在前台将中文转unicode码,后台再将unicode转中文,解决乱码js端代码如下: function toUnicode(str){ var unicode =""; for (var i = 0; i < str.length; i+...
2019-04-20 01:14:15
317
原创 springboot 搭建(一)基础搭建
之前写过一篇关于springboot的搭建,由于是初学,写的不是很好,最近重新学习springboot,这里记录一下比较全的搭建,并集成其他功能1.环境 STS(其他开发工具大同小异) , maven 3.6 、 jdk1.8 ,springboot版本 2.1.22.创建简单的maven项目,在pom文件中引入以下依赖<!-- 编码格式和编译版本 --> ...
2019-03-27 12:55:47
602
原创 位运算实现权限管理及实现原理
在实际开发中,往往一个类对象拥有多种权限,每种权限有两个状态即有和无,正常情况下,有多少个权限,就需要多少个字段保存相应状态,如果权限过多,那么这种方式显得极其笨重,最近学习了一种用一个int字段实现的权限管理的方式,方便快捷,实现原理简单,大大简化操作,用了一上午时间研究,简单实现了8个权限的管理(实际上int字段可以管理32位,与8位管理没有本质区别),现就实现过程及内部原理做一个简单总结...
2019-03-11 12:44:39
2033
原创 tomcat部署项目,ip+端口直接访问项目的三种方式
部署web项目,需要ip+端口+项目名+路径访问项目,如localhost:8080/springmvc/xxx,现在想去掉项目名springmvc,直接输入localhost:8080/就能访问,三种配置方式一:项目打war包放到tomcat的webapps下部署,war包名字改成ROOT.war,启动tomcat,直接localhost:8080就可以访问项目方式二:通过ecl...
2019-02-22 11:27:33
16460
原创 centos6.5手动设置ip地址
1.将自己本机的虚拟机手动设置ip地址,2.点击虚拟机菜单的编辑,选择虚拟网络编辑器,弹出一个虚拟网络编辑器的框,其中子网ip选择想要给虚拟机设置的网段,子网掩码自动生成,选择NAT设置3.NAT设置框,输入网关,网关需要记下来,后面需要4.打开本机电脑的网络连接5.右键->属性->ipv46.输入刚刚设置的虚拟机网关 7.确定后登陆...
2019-01-15 13:40:09
619
原创 jsp 页面配置上下文
在项目开发中,jsp页面需要进行路径跳转,正常跳转路径是 ip:port/xxxx/xxxx/xxxx,这种写法不可取,因为不灵活,耦合严重,所以在生产环境需要动态配置,以下介绍几种动态配置方法一、在html代码中写java代码的方式 <a href="<%=request.getContextPath() %>/xxxx/xxxx">跳转按钮</...
2019-01-15 11:34:46
1864
原创 java实现预览图片,点击实现下一张
项目上需要实现图片预览功能,页面展示图片的预览小图,点击时弹出层展示原图,可以点击上一张和下一张等效果1.本文将简单具体介绍实现的全过程,前后台代码和需要用到的插件2.先上效果图加载页面的效果设置每个图片的预览效果,可自定义尺寸,当点击图片时原图在页面中间弹出,可以点击灰色部分或者图片右上角的 X 号关闭 项目用到的前端插件 jquerygalpop,到...
2018-12-29 14:58:09
6777
原创 spring获取DataSource数据源从Tomcat中配置的数据源获取方法--jndi方式
1.配置目的:公司数据库提供内网与外网访问数据库,在家与公司都可以访问,这就需要分情况配置数据源信息,公司项目统一在tomcat中配置数据源信息,不同环境只需要更改tomcat数据源配置信息,不需要对项目配置信息进行修改,方便灵活2.对于tomcat配置jndi数据源与spring做整合,目前理解不是很深,白天搭建了一下,成功获取数据源连接,目前只提供一种配置方式,至于tomcat配置虚拟目录...
2018-10-23 00:52:25
4129
原创 简单的java之SSM框架异步图片上传回显demo附前后台代码
1.图片上传回显一般都是用成熟上传组件完成,直接套用即可,最近我做一个项目,没有现成组件可用,不过用js和java代码也可以实现图片上传与回显,这里就将我的上传回显完整的记录下来2.项目中我用的ssm框架,这里做一个小demo,不想再搭一个框架,用的springboot,直接用springmvc的上传组件就可以完成后台代码,前台代码用的js3.环境: 工具:myeclipse,jd...
2018-07-10 01:08:42
2510
原创 myeclipse10创建Springboot的小demo之helloworld
1.环境:myeclipse10,maven3.3.9,jdk1.82.配置jdk1.8环境变量,maven环境变量3.创建新的工作空间SpringBoot4.创建maven项目5.选择创建简单的项目,这样创建的项目会有完整的目录结构,我试着不选择创建出来的项目出现问题,没有搞清楚怎么回事所以先选择创建简单项目,点击下一步,填写相关信息6.填写信息,其中Compiler Level只能选到1.6不...
2018-06-29 16:22:10
2966
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人