摘要: 每到年末的最后一个月,都是大家在做各种各样总结的时候。有的是调侃,有的是复盘,但不论怎样,年终做一个整体的回顾还是非常有必要的。 2017年关于工作的收获,就是坚持每个月都能写几篇博文,把在工作遇到的问题或一些想法都整理成博文,作为一种知识点备查和分享。 在3月份的时候竟然一篇笔记都没有,应该是封闭 阅读全文
posted @ 2017-12-31 22:44 nuccch 阅读(490) 评论(0) 推荐(0)
摘要: What 起源 Kettle是一个Java编写的ETL工具,主作者是Matt Casters,2003年就开始了这个项目,最新稳定版为7.1。 2005年12月,Kettle从2.1版本开始进入了开源领域,一直到4.1版本遵守LGPL协议,从4.2版本开始遵守Apache Licence 2.0协议 阅读全文
posted @ 2017-12-30 23:00 nuccch 阅读(43136) 评论(2) 推荐(2)
摘要: 概述 在这里所谓的数据库连接是指通过网络协议与数据库服务之间建立的TCP连接。通常,与数据库服务进行通信的网络协议无需由应用程序本身实现,原因有三: 1. 实现复杂度大,需要充分理解和掌握相应的通信协议。 2. 代码难以复用,每个应用程序都需要独立实现一套对应的网络协议(不同公司之间,同一公司的不同 阅读全文
posted @ 2017-12-26 22:31 nuccch 阅读(24218) 评论(0) 推荐(1)
摘要: 官网:https://shiro.apache.org/ 一. 概述 Shiro作为一个开源的权限框架,其组件化的设计思想使得开发者可以根据具体业务场景灵活地实现权限管理方案,权限粒度的控制非常方便。 首先,我们来看看Shiro框架的架构图: 从上图我们可以很清晰地看到,CacheManager也是 阅读全文
posted @ 2017-12-15 17:44 nuccch 阅读(24222) 评论(2) 推荐(6)
摘要: 什么是范型 简言之,范型是Java支持在编译期进行类型检查的机制。 这里面包含2层含义:其一,可以使用范型进行类型检查;其二,在编译期进行类型检查。 那么,什么叫做在编译期进行类型检查?可以在运行时进行类型检查吗?带着这些疑问,我们一步步深入范型。 范型有什么用途 1. 使用Java集合类时明确指定 阅读全文
posted @ 2017-12-11 19:48 nuccch 阅读(1106) 评论(0) 推荐(0)
摘要: ##代理模式 在深入学习动态代理之前,需要先掌握代理模式。只有深刻理解了代理模式的应用,才能充分理解Java动态代理带来的便利。 在生活中存在许多使用“代理模式”的场景,比如:村里的张三今年已经30岁了,但是还没结婚,可把他老妈给愁坏了,于是就拜托村东头的王媒婆给儿子找个媳妇。 在这里,要娶媳妇的人 阅读全文
posted @ 2017-12-01 14:33 nuccch 阅读(253) 评论(0) 推荐(0)
摘要: 什么是反射 反射机制允许在Java代码中获取被JVM加载的类信息,如:成员变量,方法,构造函数等。 在Java包java.lang.reflect下提供了获取类和对象反射信息的相关工具类和接口,如:Field,Method,Constructor等。 使用反射可以做什么事情 反射通常被用于需要检查或 阅读全文
posted @ 2017-11-30 12:20 nuccch 阅读(326) 评论(0) 推荐(0)
摘要: 写在前面 Java从1.5版本之后开始支持注解,通过注解可以很方便地实现某些功能,使用得最普遍的就是Spring框架的注解,大大简化了Bean的配置。 注解仅仅是一种Java提供的工具,并不是一种编程模式。 单纯定义注解不能做任何事情,没有任何意义。除了注解之外,还需要编写注解处理器,通过注解处理器 阅读全文
posted @ 2017-11-29 17:53 nuccch 阅读(797) 评论(0) 推荐(0)
摘要: 官网:https://shiro.apache.org/ 我们先来看一下shiro中关于Session和Session Manager的类图。 如上图所示,shiro自己定义了一个新的Session接口,用于统一操作接口,并通过SessionManager实现Session管理。 其中的3个实现类H 阅读全文
posted @ 2017-11-28 18:25 nuccch 阅读(13961) 评论(2) 推荐(0)
摘要: 问题描述 前后端分离的项目,前端使用Vue,后端使用Spring MVC。 显然,需要解决浏览器跨域访问数据限制的问题,在此使用CROS协议解决。 由于该项目我在中期加入的,主要负责集成shiro框架到项目中作为权限管理组件,之前别的同事已经写好了部分接口,我负责写一部分新的接口。 之前同事解决跨域 阅读全文
posted @ 2017-11-24 17:31 nuccch 阅读(15871) 评论(1) 推荐(3)
摘要: 问题描述 前后端完全分离的项目,前端使用Vue + axios,后端使用SpringMVC,容器为Tomcat。 使用CORS协议解决跨域访问数据限制的问题,但是发现客户端的Ajax请求不会自动带上服务器返回的Cookie:JSESSIONID。 导致每一个Ajax请求在服务端看来都是一个新的请求, 阅读全文
posted @ 2017-11-21 20:31 nuccch 阅读(41246) 评论(4) 推荐(5)
摘要: ##问题描述 @Select("select * from account order by #{orderBy} #{orderRule} limit #{start},#{offset}") public List<Account> getAccountList(@Param("orderBy" 阅读全文
posted @ 2017-11-20 19:57 nuccch 阅读(11087) 评论(2) 推荐(1)
摘要: 写在前面 我们知道,shiro框架在Java Web应用中使用时,本质上是通过filter方式集成的。 也就是说,它是遵循过滤器链规则的:filter的执行顺序与在web.xml中定义的顺序一致,如下所示: 显然,securityFilter定义在shiroFilter之前,那么securityFi 阅读全文
posted @ 2017-11-16 13:15 nuccch 阅读(15329) 评论(2) 推荐(1)
摘要: 问题描述 应用在客户产线环境部署时,要求只需要输入域名就可以直接访问到应用,而不用输入完整的应用访问路径。 项目架构 前端使用nginx作为反向代理和负载均衡,后端部署多个tomcat实例。 Web应用直接部署到catalina_home/webapps目录下,访问时必须带上应用上下文路径:http 阅读全文
posted @ 2017-10-27 23:48 nuccch 阅读(9649) 评论(0) 推荐(1)
摘要: 这里说的项目管理指技术上的项目管理,而不是行政上的项目管理。 1. 软件版本管理 使用语义化的版本控制,严格遵循语义化版本控制的规范,通过软件版本号来传递意义。 特别是对外提供的公共API项目,必须使用语义化的版本控制,否则,随着API功能的演化和发展可能会面临灾难性的痛苦。 关于语义化版本控制规范 阅读全文
posted @ 2017-10-25 16:14 nuccch 阅读(327) 评论(0) 推荐(0)
摘要: 任何一个maven项目都会继承一个默认的父pom配置:Super POM,详见:https://maven.apache.org/guides/introduction/introduction-to-the-pom.html 。 在pom.xml中可以直接使用一些变量值,如: ${project. 阅读全文
posted @ 2017-10-24 13:52 nuccch 阅读(357) 评论(0) 推荐(0)
摘要: 起因 项目中同时依赖了Spring和MyBatis,并使用mybatis spring集成MyBatis和Spring。 使用maven打包为可执行jar文件运行,打包插件为:maven shade plugin。 但是在执行 命令时报错: 原因分析 项目同时依赖了mybatis spring.ja 阅读全文
posted @ 2017-10-24 13:51 nuccch 阅读(764) 评论(0) 推荐(0)
摘要: 一. 自带核心插件 https://maven.apache.org/plugins/ 二. 第三方插件 1.maven-assembly-plugin http://maven.apache.org/plugins/maven-assembly-plugin/ (1)打包独立运行的jar文件 <p 阅读全文
posted @ 2017-10-24 13:49 nuccch 阅读(562) 评论(0) 推荐(0)
摘要: Node.js是什么 Node.js是一个可以允许我们在服务器端运行JavaScript代码的程序。 这是什么意思呢?通常,我们写的JavaScript代码都是在浏览器中运行的。 实际上,浏览器就是一个JavaScript运行时环境,用于解释执行js代码。 更进一步地说,虽然浏览器提供了JavaSc 阅读全文
posted @ 2017-10-20 23:44 nuccch 阅读(392) 评论(0) 推荐(0)
摘要: 目录 "写在前面" "详细配置" "1.dataSource(数据源)" "2.sqlSessionFactory(Session工厂)" "3.Mapper(映射器)" "4.TransactionManager(事务管理器)" 写在前面 在Java世界,AOP编程是非常流行的模式,大大降低了功能 阅读全文
posted @ 2017-10-19 17:38 nuccch 阅读(637) 评论(0) 推荐(0)