摘要: 什么是范型 简言之,范型是Java支持在编译期进行类型检查的机制。 这里面包含2层含义:其一,可以使用范型进行类型检查;其二,在编译期进行类型检查。 那么,什么叫做在编译期进行类型检查?可以在运行时进行类型检查吗?带着这些疑问,我们一步步深入范型。 范型有什么用途 1. 使用Java集合类时明确指定 阅读全文
posted @ 2017-12-11 19:48 nuccch 阅读(1088) 评论(0) 推荐(0) 编辑
摘要: ##代理模式 在深入学习动态代理之前,需要先掌握代理模式。只有深刻理解了代理模式的应用,才能充分理解Java动态代理带来的便利。 在生活中存在许多使用“代理模式”的场景,比如:村里的张三今年已经30岁了,但是还没结婚,可把他老妈给愁坏了,于是就拜托村东头的王媒婆给儿子找个媳妇。 在这里,要娶媳妇的人 阅读全文
posted @ 2017-12-01 14:33 nuccch 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 什么是反射 反射机制允许在Java代码中获取被JVM加载的类信息,如:成员变量,方法,构造函数等。 在Java包java.lang.reflect下提供了获取类和对象反射信息的相关工具类和接口,如:Field,Method,Constructor等。 使用反射可以做什么事情 反射通常被用于需要检查或 阅读全文
posted @ 2017-11-30 12:20 nuccch 阅读(324) 评论(0) 推荐(0) 编辑
摘要: 写在前面 Java从1.5版本之后开始支持注解,通过注解可以很方便地实现某些功能,使用得最普遍的就是Spring框架的注解,大大简化了Bean的配置。 注解仅仅是一种Java提供的工具,并不是一种编程模式。 单纯定义注解不能做任何事情,没有任何意义。除了注解之外,还需要编写注解处理器,通过注解处理器 阅读全文
posted @ 2017-11-29 17:53 nuccch 阅读(773) 评论(0) 推荐(0) 编辑
摘要: 官网:https://shiro.apache.org/ 我们先来看一下shiro中关于Session和Session Manager的类图。 如上图所示,shiro自己定义了一个新的Session接口,用于统一操作接口,并通过SessionManager实现Session管理。 其中的3个实现类H 阅读全文
posted @ 2017-11-28 18:25 nuccch 阅读(13894) 评论(2) 推荐(0) 编辑
摘要: 问题描述 前后端分离的项目,前端使用Vue,后端使用Spring MVC。 显然,需要解决浏览器跨域访问数据限制的问题,在此使用CROS协议解决。 由于该项目我在中期加入的,主要负责集成shiro框架到项目中作为权限管理组件,之前别的同事已经写好了部分接口,我负责写一部分新的接口。 之前同事解决跨域 阅读全文
posted @ 2017-11-24 17:31 nuccch 阅读(15558) 评论(1) 推荐(3) 编辑
摘要: 问题描述 前后端完全分离的项目,前端使用Vue + axios,后端使用SpringMVC,容器为Tomcat。 使用CORS协议解决跨域访问数据限制的问题,但是发现客户端的Ajax请求不会自动带上服务器返回的Cookie:JSESSIONID。 导致每一个Ajax请求在服务端看来都是一个新的请求, 阅读全文
posted @ 2017-11-21 20:31 nuccch 阅读(41106) 评论(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 阅读(10951) 评论(2) 推荐(1) 编辑
摘要: 写在前面 我们知道,shiro框架在Java Web应用中使用时,本质上是通过filter方式集成的。 也就是说,它是遵循过滤器链规则的:filter的执行顺序与在web.xml中定义的顺序一致,如下所示: 显然,securityFilter定义在shiroFilter之前,那么securityFi 阅读全文
posted @ 2017-11-16 13:15 nuccch 阅读(15241) 评论(2) 推荐(1) 编辑
摘要: 问题描述 应用在客户产线环境部署时,要求只需要输入域名就可以直接访问到应用,而不用输入完整的应用访问路径。 项目架构 前端使用nginx作为反向代理和负载均衡,后端部署多个tomcat实例。 Web应用直接部署到catalina_home/webapps目录下,访问时必须带上应用上下文路径:http 阅读全文
posted @ 2017-10-27 23:48 nuccch 阅读(9401) 评论(0) 推荐(1) 编辑
摘要: 这里说的项目管理指技术上的项目管理,而不是行政上的项目管理。 1. 软件版本管理 使用语义化的版本控制,严格遵循语义化版本控制的规范,通过软件版本号来传递意义。 特别是对外提供的公共API项目,必须使用语义化的版本控制,否则,随着API功能的演化和发展可能会面临灾难性的痛苦。 关于语义化版本控制规范 阅读全文
posted @ 2017-10-25 16:14 nuccch 阅读(315) 评论(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 阅读(346) 评论(0) 推荐(0) 编辑
摘要: 起因 项目中同时依赖了Spring和MyBatis,并使用mybatis spring集成MyBatis和Spring。 使用maven打包为可执行jar文件运行,打包插件为:maven shade plugin。 但是在执行 命令时报错: 原因分析 项目同时依赖了mybatis spring.ja 阅读全文
posted @ 2017-10-24 13:51 nuccch 阅读(735) 评论(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 阅读(533) 评论(0) 推荐(0) 编辑
摘要: Node.js是什么 Node.js是一个可以允许我们在服务器端运行JavaScript代码的程序。 这是什么意思呢?通常,我们写的JavaScript代码都是在浏览器中运行的。 实际上,浏览器就是一个JavaScript运行时环境,用于解释执行js代码。 更进一步地说,虽然浏览器提供了JavaSc 阅读全文
posted @ 2017-10-20 23:44 nuccch 阅读(378) 评论(0) 推荐(0) 编辑
摘要: 目录 "写在前面" "详细配置" "1.dataSource(数据源)" "2.sqlSessionFactory(Session工厂)" "3.Mapper(映射器)" "4.TransactionManager(事务管理器)" 写在前面 在Java世界,AOP编程是非常流行的模式,大大降低了功能 阅读全文
posted @ 2017-10-19 17:38 nuccch 阅读(623) 评论(0) 推荐(0) 编辑
摘要: 写在前面 mybatis是一个持久层框架,可以支持SQL定制和存储过程,实现数据库记录到Java POJO对象之间的映射。 所以说,mybatis是一个ORM框架。 这个ORM可以通过2种方式实现:xml配置,java注解。 使用mybatis可以大大提高数据库应用程序的编写效率,避免了几乎所有的J 阅读全文
posted @ 2017-10-18 23:22 nuccch 阅读(250) 评论(0) 推荐(0) 编辑
摘要: 在java平台使用的mysql jdbc驱动为:mysql connector java。 在项目中添加如下依赖: 在6.0.2版本之前 在6.0.2版本之后 mysql connector java参数变化 1.从6.0.2版本开始,驱动类不再是 ,需要配置为: 。 否则,在启动时会提示警告日志: 阅读全文
posted @ 2017-10-18 16:28 nuccch 阅读(2148) 评论(0) 推荐(1) 编辑
摘要: 背景介绍 项目前期使用http,后期为了安全方面的考虑,启用了https。 项目架构:前端使用nginx作为多个tomcat实例的反向代理和负载均衡。 实际上只需要在nginx上启用https即可,使客户端与nginx之间使用https方式通信,而nginx与tomcat之间依然以http方式通信。 阅读全文
posted @ 2017-10-17 14:46 nuccch 阅读(40487) 评论(1) 推荐(3) 编辑
摘要: 在进行前端页面开发时,为了调试方便,需要在本地启动一个静态文件服务器,而不需要与后端api服务一起部署。 常用静态文件服务器 01. anywhere 使用简单,需要nodejs环境。 安装:npm install anywhere -g 使用:anywhere --help 在任何需要访问静态文件 阅读全文
posted @ 2017-10-12 15:24 nuccch 阅读(1195) 评论(0) 推荐(0) 编辑