![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
robin912
赶路的时候,多停下来看看周围的风景;编码的时候,多停下来想想相关问题。
展开
-
AOP常用表达式组合
AOP常用表达式组合execution(public * *(..)) // 所有public方法execution(* set*(..)) // 所有set开头的方法execution(public set*(..)) // 所有set开头的public方法execution(public com.xyz.service.* set*(..)) // 所有位于包com.xyz.servi...原创 2019-12-28 11:23:39 · 298 阅读 · 0 评论 -
spring boot切面编程
spring boot切面编程使用@Aspect实现切面编程:jar包依赖, spring依赖spring-aop和spring-aspects, @Aspect依赖aopalliance,aspectjweaver。代码:import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.annotation.Arou...原创 2019-12-28 11:10:40 · 235 阅读 · 0 评论 -
dwr学习
dwr学习DWR是一个远程调用库,用于js调用java函数或者java调用js函数。DWR主要由下面两部分组成:运行一个Java Servlet服务器,接收请求并返回结果给浏览器。js运行在浏览器中,负责给后台服务器发送请求并动态更新结果。 DWR Demo以使用SpringMVC搭建服务器集成为例maven <dependency> ...原创 2018-09-01 13:44:22 · 104 阅读 · 0 评论 -
jna编程注意事项
jna编程注意事项jna的初始化,注意跨平台根据目录,把动态库(.dll/.so)文件按照不同操作系统,不同操作系统版本位数,放到不同的目录下。使用Platform.isWindows()区分操作系统。获取classes运行路径: Thread.currentThread().getContextClassLoader() .getResource("").getPa...原创 2018-08-27 09:53:00 · 691 阅读 · 0 评论 -
Java optional类学习
Java optional类学习学习好Java编程语言,应该需要能够处理好null指针的异常。 示例computer.getSoundCard().getUSB().getVersion(),如果在前端出现返回null取值后,后续的get操作会产生异常。 为了避免这种异常,Java SE 8提供了java.util.Optional类。Optional用户把原对象 T 使用Optina...原创 2018-07-25 19:26:54 · 211 阅读 · 0 评论 -
设计模式之State模式
设计模式之State模式设计模式State主要用户状态变化处理,如果不用State模式,需要使用多次if语句判断状态值,然后执行不同的操作.在State模式下,每个模式为一个类,在类中给出当前模式下的对应操作, 让相关的操作统一在一个类中独立实现.State模式的角色组成:Context: 提供底层接口,上下文环境(state变量), 上层抽象的业务逻辑等 State: Stat...原创 2018-07-12 13:50:52 · 263 阅读 · 0 评论 -
java容器
java容器java容器作为数据结构的标准实现,包含有Map, Collection(Queue, Set, List),上面主要为接口的定义,包含了常用的功能数据结构. 接口定义了功能,接口有多种具体实现,不同的实现方式,会有不同的适用场景,在不同的场景下的算法效率不同.Iterator是用户遍历Collection类的,在for(T t:Collection){}语法中,内部是调...原创 2018-07-05 11:18:29 · 261 阅读 · 0 评论 -
设计模式之Bridge
设计模式之BridgeBridge模式是基于类的实现层次结构和类的功能层次结构两个概念之上的. Bridge模式是在类的功能层次结构和类的实现层次结构之间建立了一个桥梁,也就是让功能接口和实现接口解耦,让类的层次结构更清晰,而且易于扩张.类的实现层次结构 父类定义功能点,功能点通过子类继承实现新功能点. 图: 类的功能层次结构 父类定义接口,子类实现接口. 图: B...原创 2018-07-17 15:36:24 · 189 阅读 · 0 评论 -
设计模式之Mediator
设计模式之MediatorMediator翻译为仲裁者,常用于图形编程中,有多个同事类相互状态依赖的场景.使用仲裁者模式可以解耦各个同事类间的交互等依赖.Mediator模式是把同事类间的交互逻辑统一放到Mediator类中进行统一管理,把各个同事类的状态管理放在Mediator中,操作同事类后状态切换时,同事类通过上报更新的状态给Mediator进行决策,更新对应的其他同事类.由于M...原创 2018-07-17 13:51:45 · 382 阅读 · 0 评论 -
maven执行遇到错误
maven执行遇到错误org/apache/maven/cli/MavenCli : Unsupported major.minor version 51.0这个错误是由于jre版本和maven的要求支持版本不一致导致的,需要升级jre的版本.查看java .class文件的支持版本号javap -v *.class...原创 2018-09-01 13:46:52 · 427 阅读 · 0 评论 -
jmap内存分析
jmap内存分析在遇到jvm内存泄漏问题(java heap space),如果需要借助工具分析内存,可以使用jmap。测试代码:public class HeapStats { public static void main(String[] args) { List&lt;TestCase&gt; cases = new Array...原创 2018-09-01 15:48:07 · 4139 阅读 · 0 评论 -
java class文件批量反编译
java class文件批量反编译需要先下载最新版本的jad文件。https://varaneckas.com/jad/jad -o -r -sjava -dsrc ‘tree/*/.class’由于jad反编译在多层目录结构下无法很好的处理,下面用脚本调用jad实现整个目录的反编译import osimport sysfrom os.path import joinimpo...原创 2018-09-17 08:56:40 · 293 阅读 · 0 评论 -
Hibernate学习笔记1
Hibernate学习笔记Hibernate是一个ORM(Object Relation Mapping)框架,在项目中处于持久层位置,对JDBC有轻量级封装。Hibernate主要作用把数据库层和业务层解耦有Hibernate,程序员专注处理业务逻辑,数据库管理员专注数据库操作把数据库中数据映射为Bean,方便操作性能有保障一个Hibernate项目的创建步骤...原创 2018-09-11 09:40:31 · 142 阅读 · 0 评论 -
Hibernate Demo1
Hibernate Demo1Hibernate版本3.3.2GAmaven配置<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchem...原创 2018-09-11 09:44:13 · 146 阅读 · 0 评论 -
axis2实现webservice服务
axis2实现webservice服务axis2实现webservice服务服务端实现java2wsdl产生wsdl文件wsdl2java产生服务端代码实现webservice代码逻辑客户端实现采用java1.8, axis2为1.7.8服务端实现服务端采用先实现java代码,然后使用工具java2wsdl产生wsdl文件,之后 再通过wsdl2ja...原创 2018-09-15 12:27:04 · 707 阅读 · 0 评论 -
axis2实现webservice服务和tomcat集成
axis2实现webservice服务和tomcat集成通过上一篇axis2实现webservice服务实现服务端。创建web工程在idea中新建web工程,并把axis2需要的lib包放入到web-inf/lib中 \axis2-1.7.8\webapp\WEB-INF\lib\ \axis2-1.7.8\lib\ 并在idea的工程中配置,把lib文件夹添加到工程的依赖包中...原创 2018-09-15 14:07:38 · 648 阅读 · 0 评论 -
Servlet学习
Servlet学习Filter, Listener, Servlet三者之间的关系Filter处于Servlet的前端,对请求和响应消息进行拦截;Listener用户订阅Servlet事件,当Servlet执行时,对应事件会发送给Listener;Servlet主要是处理Http请求服务的,Http协议中的get,post等方法,Servlet中都有对应的doGet, doPost,Servl...原创 2018-10-01 21:56:14 · 144 阅读 · 0 评论 -
getBean("&sessionFactory")探究
getBean("&sessionFactory")探究今天遇到添加"&"符号的写法,获取LocalSessionFactoryBean实例,于是跟踪代码看看其作用。代码路径如下:在getObjectForBeanInstance中,有这样一个判断: // Now we have the bean instance, which may be a norma...原创 2018-09-27 09:34:03 · 534 阅读 · 0 评论 -
Spring注释版工程demo
spring annotation config demo使用注解配置spring工程,最简单的spring demo。config类package demo.mq;import org.springframework.context.ApplicationContext;import org.springframework.context.annotation.AnnotationC...原创 2018-09-27 13:09:09 · 216 阅读 · 0 评论 -
Java容器中的视图
Java容器中的视图Java中的视图主要用于对Java容器的操作, 视图实现了容器对应的接口,返回原容器对象进行操作. Collections类包含了很多实用的方法,这些方法的参数和返回值都是集合;不要与Collection接口混淆。 视图主要有一下几种:轻量级集合包装器Arrays.asList(T ...t)提供一个实现有List接口的对象,对象内部使用数组实现,可以使用g...原创 2018-07-08 20:19:49 · 555 阅读 · 0 评论 -
Template Method Principle
Template Method Principle在父类中实现业务逻辑,子类中实现具体动作。在父类中实现了templateMethod,实现打印逻辑,在子类中,实现具体动作,如open,print,close等。开闭原则在扩展新的ConcreteClass时,不需要修改原AbstractClass类。其他场景分页操作,实现分页控件,在父类中实现具体的分页逻辑,子...原创 2018-06-17 15:42:43 · 131 阅读 · 0 评论 -
设计模式6原则
设计模式6原则Open Close Principle对修改关闭,对扩展开发.为了方便于扩展性,易于维护和升级,应该使用扩展,少修改原有代码。Liskov Subsititution Principle对于面向对象,任何基类可以出现的地方,子类一定可以出现。Dependency Inversion Principle对抽象实现,不对具体进行继承或实现。...原创 2018-06-17 14:26:55 · 128 阅读 · 0 评论 -
Shiro学习
Shiro学习什么是ShiroShiro是一个安全框架,可以用于认证(Authentication),鉴权(Authorizetion),加密和会话管理。Shiro的三大核心组件Subject :当前用户的操作SecurityManager:用于管理所有的SubjectRealms:用于进行权限信息的验证Subject:即当前用户,在权限管理的应用程序里往往需要...原创 2018-04-20 22:07:49 · 114 阅读 · 0 评论 -
Mybatis处理一对多映射查询
Mybatis处理一对多映射查询Mybatis处理sql查询比较灵活,既可以使用orm创建实体类来保存结果集,也可以直接使用HashMap保存结果集.数据库表结构use wt;SET FOREIGN_KEY_CHECKS=0;-- ------------------------------ Table structure for user_info-- -------...原创 2018-04-19 20:07:00 · 222 阅读 · 0 评论 -
Mybatis多对一映射查询
Mybatis多对一映射查询数据表多对一需要使用到association标签,在mapper.xml中定义好字段映射. 添加查询需要用到下面几个操作,添加实体类添加方法接口在mapper.xml中定义sql语句数据库表及数据use wt;SET FOREIGN_KEY_CHECKS=0;-- ------------------------------ ...原创 2018-04-19 20:00:27 · 163 阅读 · 0 评论 -
Spring实战学习笔记-SpringMVC
使用idea搭建spring项目idea创建spring项目需要idea ultimate版本,使用社区版本不支持spring开发 项目支持mavenpom.xml常用配置spring相关<!-- https://mvnrepository.com/artifact/org.springframework/spring-core --><...原创 2018-04-23 22:08:28 · 791 阅读 · 0 评论 -
Mybatis generator配置
使用mybatis generator批量产生mapper代码文件在用spring boot添加mybatis时,可以使用mybatis generator自动产生代码.修改&lt;classPathEntry&gt;中数据库链接驱动在&lt;jdbcConnection&gt;中配置数据库链接在&lt;javaModelGenerator&gt;中配置目标包路径和文件夹路径在&l原创 2018-04-18 17:34:38 · 141 阅读 · 0 评论 -
spring boot mybatis配置
SpringBoot中添加mybatis数据库添加modelpublic class UserInfo { private String uid; private String login_name; private String username; private String worker_id; private String passw...原创 2018-04-18 17:30:55 · 96 阅读 · 0 评论 -
SpringBoot项目搭建一
Spring Boot Maven配置Spring Boot也可以通过maven创建项目一个简单的pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/X...原创 2018-04-14 22:03:07 · 146 阅读 · 0 评论 -
Spring Boot 安装
spring boot cli安装Spring Boot CLI是一个命令行工具,用户安装和Spring原型搭建。安装sdkmancurl -s "https://get.sdkman.io" | bash安装spring boot$ sdk install springboot$ spring --versionSpring Boot v2.0.1.RELEA...原创 2018-04-14 21:22:20 · 342 阅读 · 0 评论 -
Spring Boot添加AOP日志
Spring Boot添加AOP日志添加aop包 <!--aop依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</art...原创 2018-04-26 15:58:18 · 188 阅读 · 0 评论 -
java中类可见性修饰符
java中类可见性修饰符public 所有可见private 仅对本类可见protected 本包和子类可见default 本包可见(没有修饰符)原创 2018-05-26 20:20:33 · 4967 阅读 · 0 评论 -
thymeleaf学习
thymeleaf学习thymeleaf为java web开发中的一种模板视图组件。变量变量表示语法: - Variable Expressions: ${…} - Selection Variable Expressions: *{…} - Message Expressions: #{…} - Link URL Expressions: @{…}<inpu...原创 2018-06-17 14:18:29 · 137 阅读 · 0 评论 -
java中的注解
注解的语法注解同class和interface一样,属于Java的一种类型。定义:public @interface CustomAnnotation {}使用:@CustomAnnotationpublic class Example {}元注解用于注解注解的标签元标签有 @Retention、@Documented、@Target、@Inher...原创 2018-06-17 12:34:46 · 180 阅读 · 0 评论 -
springmvc + thymeleaf中ajax get请求
Ajax请求简单实现在spring boot + thymeleaf环境下,利用thymeleaf的fragments模板,实现Ajax请求.主页面block<!DOCTYPE html><html lang="en" xmlns:th="http://www.w3.org/1999/xhtml"><head> <meta c...原创 2018-06-17 12:09:27 · 7554 阅读 · 2 评论 -
shiro基础概念
原文shiro的功能Authentication:身份认证/登录,验证用户是不是拥有相应的身份。Authorization:授权,即权限验证,验证某个已认证的用户是否拥有某个权限;即判断用户是否能做事情,常见的如:验证某个用户是否拥有某个角色。或者细粒度的验证某个用户对某个资源是否具有某个权限。Session Manager:会话管理,即用户登录后就是一次会话,在没有退出之前,它...转载 2018-05-29 13:44:57 · 443 阅读 · 0 评论 -
Shiro实现jwt验证流程梳理
Shiro实现jwt验证流程梳理Shiro jwt实现 jwt验证原理由于业务需要用到jwt验证,需要把实现的用户密码验证方式修改为jwt的验证方式. 在把之前的登录流程修改为jwt验证时,是省略掉了shiro内部的login步骤和session管理 代码修改如下:- Subject subject = SecurityUtils.getSubject();-...原创 2018-05-29 13:42:13 · 7317 阅读 · 1 评论 -
Spring MVC 4.2 增加 CORS 支持(转)
# Spring MVC 4.2 增加 CORS 支持跨站 HTTP 请求(Cross-site HTTP request)是指发起请求的资源所在域不同于该请求所指向资源所在的域的 HTTP 请求。比如说,域名A(http://domaina.example)的某 Web 应用程序中通过标签引入了域名B(http://domainb.foo)站点的某图片资源(http://domainb.fo...转载 2018-05-24 17:05:05 · 333 阅读 · 0 评论 -
spring中统一到前端的返回值
spring中统一到前端的返回值在业务处理流程中抛出的异常,通过切面编程捕获后,给前端返回统一的消息格式@ControllerAdvicepublic class ControllerExceptionHandler { Logger logger = LoggerFactory.getLogger(getClass()); @ExceptionHandler(T...原创 2018-05-24 16:21:46 · 682 阅读 · 0 评论 -
spring mvc框架中的参数传递
spring mvc框架中的参数传递页面传递参数给controller查询参数url示例: /spittles?max=238900&count=50@RequestMapping(method=GET)public String spittles( @RequestParam(defaultValue="20") int max, @Reque...原创 2018-05-23 16:07:56 · 184 阅读 · 0 评论