![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA web
文章平均质量分 60
介绍java web后台领域的知识经验
chao09_01
working & enjoying
展开
-
Java利用反射动态设置对象字段值
桥梁信息维护需要做到字段级别的权限控制(包括增删改查),设计包含字段权限配置、字段权限级别管理维护接口两大部分。2)对于增删改操作,出入参可参考常用的字段传参;2)建立新对象,根据字段级别权限控制将接受或查询结果放到新对象中;增删改情况,没有字段权限的字段设置成null值;1)字段权限配置可参考常见的用户角色管理设计;查询情况,每个字段按照上述字段定义进行返回;1)按照正常逻辑接受或者查询结果。原创 2024-01-03 15:20:43 · 854 阅读 · 0 评论 -
jar包冲突如何排查
大家在项目中肯定有碰到过Maven的Jar包冲突问题,经常出现的场景为:项目中运行报NoSuchMethodError,ClassNotFoundException。明明在依赖里有这个Jar包啊。怎么运行不了!?项目中明明定义着某个jar包版本为2.0.2,怎么打包之后变成2.5.0了!?A项目引xxx.jar包运行好好的,B项目同样引入xxx.jar后,运行报错了。。是B项目有问题,还是xxx.jar包有问题!?本地环境和测试环境运行的好好的,到了生产就报一堆NoSuchMethodErr原创 2022-02-07 23:52:12 · 5307 阅读 · 0 评论 -
Lombok使用总结
1原创 2022-02-07 22:50:52 · 276 阅读 · 0 评论 -
maven 打包
工作中会时常遇到maven打包,并将打好的二方包提供给其他同事使用。maven打包的原理本质上是修改项目中相关pom的version,然后执行maven打包命令。对于要打的包如果本身依赖关系不复杂,可以直接修改pom文件中的version。但是对于依赖关系复杂的,建议使用如下命令打包:# 统一设置版本号mvn versions:set -DnewVersion=1.0.0-DAILY_SNAPSHOT# 提交版本号mvn versions:commit# 回退版本号(未执行上面回退版本原创 2021-10-10 08:52:12 · 1015 阅读 · 0 评论 -
Spring获取Application Context以及bean方法
如何在Spring中获取Application Context进而获取已加载的bean呢?常见的方式是实现ApplicationContextAware接口,参考代码如下所示: import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAwa原创 2021-07-31 13:38:35 · 674 阅读 · 0 评论 -
JWT知识总结与使用
1、JWT简介 Json web token(JWT)是为了网络应用环境间传递声明而执行的一种基于JSON的开发标准(RFC 7519),该token被设计为紧凑且安全的,特别适用于分布式站点的单点登陆(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。2、JWT的构成JWT是由三部分构成,将这三段信息文本用链接构成了JWT...原创 2021-01-31 21:57:47 · 1381 阅读 · 0 评论 -
Arthas使用方法
1、简介Arthas 是Alibaba开源的Java诊断工具。安装在系统所在服务器。可以帮助开发人员或者运维人员查找问题,分析性能,bug追踪。下载路径:https://arthas.aliyun.com/arthas-boot.jar2、工具使用2.1 启动$ java -jar arthas-boot.jar* [1]: 35542 [2]: 71560 arthas-demo.jarDemo进程是第2个,则输入2,再输入回车/enter。Arthas会attac...原创 2021-01-25 22:23:02 · 1153 阅读 · 1 评论 -
RocketMQ集群(2主2从)搭建详细步骤
1、RocketMQ消息队列基础概念NameServer: 提供轻量级的服务发现和路由。 每个 NameServer 记录完整的路由信息,提供等效的读写服务,并支持快速存储扩展。Broker: 通过提供轻量级的 Topic 和 Queue 机制来处理消息存储,同时支持推(push)和拉(pull)模式以及主从结构的容错机制。Producer:生产者,产生消息的实例,拥有相同 Producer Group 的 Producer 组成一个集群。Consumer:消费者,接收消息进行消费的实例,拥原创 2021-01-16 23:14:20 · 1126 阅读 · 0 评论 -
RedisTemplate使用总结
一、简介RedisTemplate是Spring Data Redis提供给用户的最高级的抽象客户端,用户可直接通过RedisTemplate进行多种操作。针对数据的“序列化/反序列化”,提供了多种可选择的策略(RedisSerializer),如下所示:1.JdkSerializationRedisSerializer:POJO对象的存取场景,使用JDK本身序列化机制,将pojo类通过ObjectInputStream/ObjectOutputStream进行序列化操作,最终redis-serv原创 2020-08-08 22:57:53 · 1400 阅读 · 0 评论 -
Java利用Cookie或Session实现登录验证
简单的登录验证可以通过Session或者Cookie实现,具体如下:一、利用Session实现登录验证1、自定义HandlerInterceptorpublic class LoginInterceptor implements HandlerInterceptor { @Override public void afterCompletion(HttpServletRequest request, HttpSe原创 2020-06-21 23:08:51 · 7034 阅读 · 0 评论 -
使用jvisualvm远程监控服务器jvm步骤详解
1、前言开发大型 Java 应用程序的过程中难免遇到内存泄露、性能瓶颈等问题,比如文件、网络、数据库的连接未释放,未优化的算法等。随着应用程序的持续运行,可能会造成整个系统运行效率下降,严重的则会造成系统崩溃。为了找出程序中隐藏的这些问题,在项目开发后期往往会使用性能分析工具来对应用程序的性能进行分析和优化。VisualVM 是一款免费的性能分析工具。它通过 jvmstat、JMX、SA(...原创 2019-12-08 21:37:36 · 2442 阅读 · 0 评论 -
压力测试工具Jmeter使用详解
JMeter是开源软件Apache基金会下的一个性能测试工具,用来测试部署在服务器端的应用程序的性能。Jmeter是用java写的,所以它的运行需要java环境。其下载地址为:https://jmeter.apache.org/download_jmeter.cgi。下面将详细讲述该工具的使用方法:1)运行下载文件夹中的bin文件夹下的jmeter.bat(windows环境)/jmeter....原创 2019-12-04 22:37:27 · 4924 阅读 · 0 评论 -
SpringBoot+Mybatis开启二级缓存
MyBatis 内置了一个强大的事务性查询缓存机制,包括一级缓存,二级缓存,它可以非常方便地配置和定制。一级缓存是sqlSession级别的缓存,二级缓存是Mapper 命名空间级别的缓存。MyBatis 默认是开启一级缓存的,即同一个 sqlSession 每次查询都会先去缓存中查询,没有数据的话,再去数据库获取数据。<dependency> <gro...原创 2019-11-22 22:33:34 · 5199 阅读 · 2 评论 -
单元测试--JMockit使用
1、JMockit配置<!-- 先声明jmockit的依赖 --> <dependency> <groupId>org.jmockit</groupId> <artifactId>jmockit</artifactId> <version>1.36</version>...原创 2019-10-29 21:06:20 · 433 阅读 · 0 评论 -
Springboot项目(包含第三方jar包)打成jar包方法
Spring Boot项目一般是以jar包形式部署,下面就着重介绍其jar包发布的方法,一般来说,该方法只需要修改pom.xml文件即可。以下是具体步骤:1、修改项目发布形式<packaging>jar</packaging>2、配置加载第三方jar包的目录<plugin> <groupId>org.apache.mave...原创 2019-03-18 22:12:44 · 3161 阅读 · 1 评论 -
Struts2框架代码开发流程小结
因为工作临时需要,自己接触并学习使用了Struts框架。下面记录下自己在Struts2框架下的代码开发流程1、配置web.xml文件web.xml配置文件是一种J2EE配置文件,决定servlet容器的HTTP元素需求如何进行处理。它严格来说不是一个Struts2 配置文件,但它是Struts2 运作所需要进行配置的文件。<?xml version="1.0" encoding...原创 2019-06-25 20:24:57 · 285 阅读 · 0 评论 -
Spring框架中常用的设计模式详解
一、浅谈控制反转(IOC)与依赖注入(DI)IOC(Inversion of Control)是Spring中一个非常重要的概念,它不是什么技术,而是一种解耦的设计思想。它主要的额目的是借助于第三方(Spring中的IOC容器)实现具有依赖关系的的对象之间的解耦(IOC容易管理对象,你只管使用即可),从而降低代码之间的耦合度。它不是一个模式,而是一种设计原则,但以下模式(但不限于)实现了IOC...原创 2019-06-16 17:12:26 · 29077 阅读 · 1 评论 -
IDEA集成Jprofiler教程
Jprofiler是用于分析J2EE软件性能瓶颈并准确定位到java类或者方法并有效解决性能问题的主流工具,它通常需要与性能测试工具如LoadRunner配合使用,因为往往只用当系统处于压力状态下才能反映出性能问题。一、Jprofiler安装软件下载地址:https://www.ej-technologies.com/download/jprofiler/files安装步骤:1、选...原创 2019-05-19 12:09:20 · 13125 阅读 · 2 评论 -
maven 依赖jar包的作用范围--scope
常用scope介绍:1)compilemaven默认的scope,表示依赖可以在生命周期中使用,而且这些依赖会传递到依赖的项目中。2)provided和compile相似,但是表明了该依赖由jdk或者容器提供。例如Servlet AP和一些Java EE APIs。这个scope 只能作用在编译和测试时,同时没有传递性。3)runtime表示依赖不作用于编译时,而作用于运行...转载 2019-03-18 23:07:38 · 1803 阅读 · 0 评论 -
Springboot项目的war包与jar包的目录结构分析
Spring Boot项目可以制作成jar包和war包,其目录结构是不一样的,具体的如下所示:1、war包目录结构分析WAR(Web Archivefile)网络应用程序文件,是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件。WAR包标准目录结构:说明:1、index.jsp[可选]2、METAINF[MAVEN自动生成目录]3、WEB-INF[必含]...原创 2019-03-18 22:20:06 · 6414 阅读 · 0 评论 -
Struts2框架接受/返回json数据
Struts接口可以从流中接受json数据并解析,并以流的形式返回给前端。如下所示:public class testController extends ActionSupport{ private InputStream inputStream; private String getRequestPostData(HttpServletRequest request)...原创 2019-06-25 20:45:59 · 774 阅读 · 0 评论 -
maven项目继承与聚合
大型项目将模块系统化拆分是为了方便系统的开发维护,因为通常大型项目都是由多个团队共同开发的。如果一个业务出现了问题,也不会对整个项目造成太大的影响,实现了软件架构之间的松耦合。将原来项目的模块系统化(一个模块一个项目),这样的拆分方式叫垂直拆分。maven继承与依赖对于多个项目共同开发,可以对一些公共的jar包文件进行抽取,抽取为一个单独的项目xxx-parent,其他的系统只需要继承...原创 2019-06-23 15:31:18 · 423 阅读 · 0 评论 -
数据库连接池--Druid使用总结
一、Druid介绍Druid是java语言中非常好的数据库连接池,其能提供强大的监控和扩展功能。其源代码仓库地址为:https://github.com/alibaba/druid。二、maven中配置DruidDruid 0.1.18 之后版本都发布到maven中央仓库中,所以你只需要在项目的pom.xml中加上dependency就可以了。例如:<dependency...原创 2019-06-23 22:38:34 · 911 阅读 · 0 评论 -
Spring AOP的原理及使用实例
一、Spring AOP中的一些概念切面(Aspect):切入业务流程的一个独立模块。“切面”在ApplicationContext中<aop:aspect>来配置。 连接点(Joinpoint):业务流程在运行过程中需要插入切面的具体位置。 通知(Advice):切面的具体实现方法。可分为前置通知(Before)、后置通知(AfterReturning)、异常通知(Aft...原创 2019-08-10 18:56:31 · 284 阅读 · 0 评论 -
Spring Boot的ApplicationRunner与CommandLineRunner接口的使用与区别
一、应用场景在开发过程中会有这样的场景:需要在容器启动的时候执行一些内容,如读取配置文件信息,清除缓存信息等。在Spring框架下是通过ApplicationListener监听器来实现的。在Spring Boot中,我们也可以根据下面要提到的两个接口来帮助我们实现这样的需求。这两个接口就是CommandLineRunner和ApplicationRunner,它们的执行时机是容器启动完成的时...原创 2019-08-11 12:39:44 · 2113 阅读 · 0 评论 -
IDEA实现远程调试步骤详解
IDEA不仅可以本地调试代码,也可以远程调试代码。一、基本原理本机和远程主机的两个 VM 之间使用 Debug 协议通过 Socket 通信,传递调试指令和调试信息。被调试程序的远程虚拟机:作为 Debug 服务端,监听 Debug 调试指令。jdwp是Java Debug Wire Protocol的缩写。调试程序的本地虚拟机:IDEA 中配置的 Remote Server,指定...原创 2019-08-11 19:36:37 · 27033 阅读 · 0 评论 -
Spring Boot集成Swagger步骤详解
Spring Boot集成Swagger可以自动生成项目的接口文档及在线调试,方便快捷,因此越来越受到程序员的关注。其具体集成步骤如下:一、定义Swagger配置bean@Configurationpublic class Swagger2 { @Bean public Docket createRestApi() { return new Docke...原创 2019-09-20 23:13:24 · 426 阅读 · 0 评论 -
MyBatis中$与#的区别
区别:1、#{}是预编译处理,MyBatics在处理#{}时,它会将sql中#{}替换为?,然后调用PreparedStatement的set方法来赋值,传入字符串后,会在值两边加上单引号,如“4,44,514”会变成'4,44,514'.。2、${}是字符串替换,MyBatics在处理${}时,它会将sql中${}替换为变量的值,传入的数据不会在两边加上单引号。注:使用${}会导致s...原创 2019-10-10 07:24:51 · 133 阅读 · 0 评论 -
在Spring的配置里,最好不要配置xsd文件的版本号
为什么dubbo启动没有问题?这篇blog源于一个疑问:我们公司使了阿里的dubbo,但是阿里的开源网站http://code.alibabatech.com,挂掉有好几个月了,为什么我们的应用启动没有问题?我们的应用的Spring配置文件里有类似的配置:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www....转载 2018-06-30 19:06:28 · 2148 阅读 · 1 评论 -
Springboot项目(包含第三方jar包)打成war包方法
Spring Boot一般以jar包的形式发布,但是有的时候需要动态配置参数部署项目,尤其是配置的参数数量特别多时,使用war包部署实际上是一个不错的选择。以下是将Spring Boot项目打包成war包发布的详细过程。1、修改启动类,并重写configure方法@SpringBootApplication@MapperScan("")public class Application...原创 2019-03-18 21:07:20 · 1685 阅读 · 1 评论 -
springboot访问图片本地路径并映射成url
springboot如何访问本地路径并获取图片等静态资源文件的url?代码写法如下:增加一个配置类:@Configurationpublic class WebMvcConfigurer extends WebMvcConfigurerAdapter { @Override public void addResourceHandlers(ResourceHandler...原创 2019-01-01 22:23:27 · 34990 阅读 · 16 评论 -
java如何读取xml文件与properties文件并解析
在java web项目中,经常会遇到xml文件以及properties文件,那么如何对其进行加载解析呢?1、xml文件解析InputStream in=null; try { in=XXXController.class.getClassLoader().getResourceAsStream("config.properties"); if(in == null){ ...原创 2018-07-03 09:33:32 · 1300 阅读 · 0 评论 -
pom.xml build标签的配置说明
1.分类 (1)全局配置(project build) 针对整个项目的所有情况都有效 (2)配置(profile build) 针对不同的profile配置<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w...转载 2018-07-01 20:02:20 · 690 阅读 · 0 评论 -
pom.xml文件常用配置
对于POM文件常用配置,具体分析如下:1、project标签---pom.xml文件头部标签(其他标签配置需放置到该标签内部)<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="htt...原创 2018-07-01 19:46:49 · 1342 阅读 · 0 评论 -
Java web应用的分层架构
DAO层:DAO层主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此,DAO层的设计首先是设计DAO的接口,然后在Spring的配置文件中定义此接口的实现类,然后就可在模块中调用此接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪个类,显得结构非常清晰,DAO层的数据源配置,以及有关数据库连接的参数都在Spring的配置文件中进行配置。Service层:Service层主要...转载 2018-06-30 19:09:42 · 1690 阅读 · 0 评论 -
hibernate的ID生成策略
hiberate原创 2016-10-31 17:48:32 · 317 阅读 · 0 评论 -
Spring常用注解
spring原创 2016-10-31 17:45:45 · 198 阅读 · 0 评论 -
javaweb三大框架SSH解读
java web 3大框架转载 2016-10-31 16:36:55 · 370 阅读 · 0 评论 -
Hibernate注解详解
hibernate转载 2016-10-31 16:34:47 · 249 阅读 · 0 评论 -
java bean入门
java bean转载 2016-10-30 10:06:30 · 341 阅读 · 0 评论