Spring
琦彦
Find out who you are,and be that person.
展开
-
spring的普通类中如何取session和request对像
在使用spring时,经常需要在普通类中获取session,request等对像. 比如一些AOP拦截器类,在使用struts2时,因为struts2有一个接口使用org.apache.struts2.ServletActionContext即可很方便的取到session对象.用法:ServletActionContext.getRequest().getSession();但在单独使用...转载 2017-06-10 15:50:26 · 13196 阅读 · 0 评论 -
Spring的事务管理:手动编码的方式
需要事务管理器:真正管理事务对象.* Spring提供了事务管理的模板(工具类.) 第一步:注册事务管理器: 配置事务管理器 <!-- 配置事务管理器 --><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionM...原创 2018-10-30 19:14:51 · 6524 阅读 · 0 评论 -
Spring的事务管理:声明式事务管理(非切面)
手动编码方式缺点:* 代码量增加,代码有侵入性.声明式事务管理:(非切面方式)基于TransactionProxyFactoryBean. 导入:aop相应jar包.第一步:注册平台事务管理器:<!-- 事务管理器 --><bean id="transactionManager" class="org.springframework....原创 2018-10-30 19:49:06 · 5544 阅读 · 0 评论 -
Spring的事务管理:声明式事务管理(切面)
声明式事务管理:(自动代理.基于切面) 第一步:导入相应jar包. aspectj第二步:引入相应约束:* aop、tx约束<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns...原创 2018-10-30 20:01:21 · 7076 阅读 · 0 评论 -
Spring的事务管理:基于注解的事务管理
基于注解的事务管理:第一步:事务管理器:<!-- 事务管理器 --><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSour.原创 2018-10-30 20:05:11 · 5952 阅读 · 0 评论 -
HttpServletRequest:增删改查cookie
什么是cookies:cookie实际上是一个存在你硬盘里的数据,但是这些数据很特殊,只能由web应用提交给浏览器帮助存储,并且我们还能读取浏览器存在本地的cookieweb应用一般只在cookie中存储一些用户信息等少量且暂时的数据,数据量大则不适合存储在cookies cookie的操作:添加cookieCookie cookie = new Cookie(“”,...原创 2018-11-02 17:02:53 · 16703 阅读 · 0 评论 -
Spring AOP:原理、 通知、连接点、切点、切面、表达式
0:Spring AOP 原理简单说说 AOP 的设计: 每个 Bean 都会被 JDK 或者 Cglib 代理。取决于是否有接口。 每个 Bean 会有多个“方法拦截器”。注意:拦截器分为两层,外层由 Spring 内核控制流程,内层拦截器是用户设置,也就是 AOP。 当代理方法被调用时,先经过外层拦截器,外层拦截器根据方法的各种信息判断该方法应该执行哪些“内层拦截...转载 2018-11-13 11:02:27 · 12807 阅读 · 1 评论 -
Spring定时任务的实现:Quartz
Java任务调度分类 从实现的技术上来分类,目前主要有三种技术: Java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务。使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行。一般用的较少,这篇文章将不做详细介绍。 使用Quartz,这是一个功能比较强大的的调度器,可以让你的程序在指定时间执行,也可以按照某一个频度...原创 2018-12-03 08:30:29 · 5733 阅读 · 0 评论 -
Spring:测试Service类中方法
Maven坐标<!-- JUNIT --><dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version></dependen原创 2018-12-14 19:05:45 · 9593 阅读 · 2 评论 -
Spring:过滤器filter、拦截器interceptor、和AOP的区别与联系
Filter过滤器过滤器拦截web访问url地址。 严格意义上讲,filter只是适用于web中,依赖于Servlet容器,利用Java的回调机制进行实现。 Filter过滤器:和框架无关,可以控制最初的http请求,但是更细一点的类和方法控制不了。 过滤器可以拦截到方法的请求和响应(ServletRequest request, ServletResponse response),并对...转载 2019-01-18 12:04:10 · 27455 阅读 · 10 评论 -
防止XSS跨站脚本攻击:Java过滤器
XSS问题描述跨站脚本(Cross site script,简称xss)是一种“HTML注入”,由于攻击的脚本多数时候是跨域的,所以称之为“跨域脚本”。我们常常听到“注入”(Injection),如SQL注入,那么到底“注入”是什么?注入本质上就是把输入的数据变成可执行的程序语句。SQL注入是如此,XSS也如此,只不过XSS一般注入的是恶意的脚本代码,这些脚本代码可以用来获取合法用户的数...原创 2019-01-25 13:36:18 · 23637 阅读 · 9 评论 -
Java 必须掌握的 20+ 种 Spring 常用注解
注解本身没有功能的,就和xml一样。注解和xml都是一种元数据,元数据即解释数据的数据,这就是所谓配置。本文主要罗列Spring|SpringMVC相关注解的简介。Spring部分1.声明bean的注解@Component 组件,没有明确的角色@Service 在业务逻辑层使用(service层)@Repository 在数据访问层使用(dao层)@Controller...转载 2019-02-11 19:57:19 · 9424 阅读 · 0 评论 -
Spring:动态刷新JavaWeb应用ApplicationContext配置
在web应用开发中时常需要修改配置,并动态的重新加载ApplicationContext。比如,设置和切换数据库。 这时,不得不重启tomcat来加载spring配置文件 如果能在不重启tomcat的情况下,手动动态加载spring 配置文件,动态重启读取spring配置文件,这样会十分方便。 spring提供了refresh刷新机制。@RequestMapping(value="...原创 2019-02-20 10:42:37 · 9951 阅读 · 3 评论 -
Spring中用了哪些设计模式
设计模式作为工作学习中的枕边书,却时常处于勤说不用的尴尬境地,也不是我们时常忘记,只是一直没有记忆。Spring作为业界的经典框架,无论是在架构设计方面,还是在代码编写方面,都堪称行内典范。好了,话不多说,开始今天的内容。spring中常用的设计模式达到九种,我们一一举例:第一种:简单工厂又叫做静态工厂方法(StaticFactory Method)模式,但不属于23种...转载 2019-03-01 13:40:30 · 5378 阅读 · 0 评论 -
为什么要使用AOP
前言一年半前写了一篇文章Spring3:AOP,是当时学习如何使用Spring AOP的时候写的,比较基础。这篇文章最后的推荐以及回复认为我写的对大家有帮助的评论有很多,但是现在从我个人的角度来看,这篇文章写得并不好,甚至可以说是没有太多实质性的内容,因此这些推荐和评论让我觉得受之有愧。基于以上原因,更新一篇文章,从最基础的原始代码-->使用设计模式(装饰器模式与代理)-->使...转载 2019-03-04 20:20:34 · 639 阅读 · 0 评论 -
Java和Spring:发送邮件(以QQ邮箱为例)
Maven配置 <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> ...原创 2019-03-29 15:40:14 · 925 阅读 · 0 评论 -
Spring事务管理:编程式和声明式
Spring的事务管理: Spring的事务管理分成两类:* 编程式事务管理:-------手动编写代码完成事务管理.* 声明式事务管理:-------不需要手动编写代码,配置.事务操作的环境搭建:CREATE TABLE `account` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(...原创 2018-10-29 15:49:48 · 5709 阅读 · 0 评论 -
Spring @Value:读取Properties配置文件
非 @Value方式:基于ResourceLoader读取Properties配置文件 以下为通过Spring @Value:读取Properties配置文件1.1 前提测试属性文件:advance_value_inject.propertiesserver.name=server1,server2,server3#spelDefault.value=notdefault...原创 2018-07-22 16:17:43 · 14627 阅读 · 0 评论 -
分布式Session:基于Spring-Session 和 Redis实现
分布式Session-前言在Web项目开发中,会话管理是一个很重要的部分,用于存储与用户相关的数据。通常是由符合session规范的容器来负责存储管理,也就是一旦容器关闭,重启会导致会话失效。因此打造一个高可用性的系统,必须将session管理从容器中独立出来。共享Session问题 HttpSession是通过Servlet容器创建和管理的,像Tomca...原创 2017-11-07 12:40:06 · 14572 阅读 · 0 评论 -
Spring 事务回滚机制
异常回滚示例1.捕获异常,不抛出,事务不能回滚!!!if(userSave){ try { userDao.save(user); userCapabilityQuotaDao.save(capabilityQuota); } catch (Exception e...转载 2017-02-08 18:04:38 · 13784 阅读 · 0 评论 -
Spring事务管理:核心接口讲解
事务:事务:是逻辑上一组操作,要么全都成功,要么全都失败.事务特性:ACIDACID,指数据库事务正确执行的四个基本要素的缩写。包含:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability) 原子性(Atomicity):事务不可分割 一致性(Consistency):事务执行的前后,数据完整性...原创 2017-12-01 11:22:57 · 17830 阅读 · 2 评论 -
AOP底层原理解析
1 什么是AOP: AOP AspectOrientedPrograming面向切面编程 AOP采取横向抽取机制,取代了传统纵向继承体系重复性代码(性能监视、事务管理、安全检查、缓存)Spring AOP使用纯Java实现,不需要专门的编译过程和类加载器,在运行期通过代理方式向目标类织入增强代码AspecJ是一个基于Java语言的AOP框架,Spring2.0开始,Spring原创 2017-11-27 08:44:14 · 14678 阅读 · 0 评论 -
基于ResourceLoader读取Properties配置文件
1.引入ResourceLoader所属的Jar包<dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>4.1.5.RELEASE</version>&原创 2017-12-07 09:18:48 · 16569 阅读 · 0 评论 -
ServletConfig和ServletContext的简单使用
ServletConfig对象ServletConfig:代表当前Servlet在web.xml中的配置信息(用的不多)在Servlet的配置文件中,可以使用一个或多个init-param>标签为servlet配置一些初始化参数。当servlet配置了初始化参数后,web容器在创建servlet实例对象时,会自动将这些初始化参数封装到ServletConfig对原创 2017-12-07 09:52:00 · 13965 阅读 · 0 评论 -
AOP:组合使用多个切入点表达式(Combining pointcut expressions)
切入点表达式可以使用'&&','||' 和“!”。也可以通过名称来引用切入点表达式。下面的例子显示了三个切入点表达式:( anyPublicOperation如果一个方法执行连接点表示任何public方法的执行,则匹配); inTrading(如果方法执行在the trading module中,tradingOperation则匹配)和(如果方法执行代表the原创 2018-01-04 19:57:09 · 24655 阅读 · 2 评论 -
Spring 定时任务:Cron expression must consist of 6 fields (found 7 in "0 12 17 14 3 ? 2018")
1,问题描述Caused by: java.lang.IllegalStateException: Encountered invalid @Scheduled method 'userRegPersist': Cron expression must consist of 6 fields (found 7 in "0 12 17 14 3 ? 2018") at org.springfram...原创 2018-03-15 18:22:16 · 42973 阅读 · 2 评论 -
使用没有父工程POM的Spring Boot
不是每个人都喜欢从spring-boot-starter-parentPOM 继承。您可能需要使用您自己的公司标准父项,或者您可能更愿意明确声明所有Maven配置。如果你不想使用它spring-boot-starter-parent,你仍然可以通过使用scope=import 依赖来保持依赖管理的好处(但不是插件管理):<dependencyManagement> <d...翻译 2018-03-02 10:27:19 · 15019 阅读 · 0 评论 -
Spring IO Platform:解决依赖版本冲突
版本冲突现状在使用Spring的时候,经常会使用到第三方库,一般大家都是根据经验挑选一个版本号或挑选最新的,随意性较大,其实这是有问题的,除非做过完整的测试,保证集成该版本的依赖不会出现问题,且后续集成其它第三方库的时候也不会出现问题,否则风险较大,且后续扩展会越来越困难,因为随着业务复杂度的增加,集成的第三方组件会越来会多,依赖之间的关联也会也来越复杂。好消息是,Spring IO P...原创 2018-03-02 10:44:29 · 16999 阅读 · 4 评论 -
Spring 定时任务@Scheduled
1.maven配置<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.1.5.RELEASE</version></dependency&a原创 2018-03-12 19:34:53 · 23741 阅读 · 0 评论 -
Spring和SpringMVC父子容器关系
一、背景 最近由于项目的包扫描出现了问题,在解决问题的过程中,偶然发现了Spring和SpringMVC是有父子容器关系的,而且正是因为这个才往往会出现包扫描的问题,我们在此来分析和理解Spring和SpringMVC的父子容器关系并且给出Spring和SpringMVC配置文件中包扫描的官方推荐方式。二、概念理解和知识铺垫 在Spring整体框架的核心概念中,容器是核心思想,就是用来管理Be...转载 2018-03-31 07:58:04 · 13490 阅读 · 1 评论 -
java.lang.NoSuchMethodError: org.springframework.core.ResolvableType.clearCache
问题现象2018-04-09 23:14:24:645 org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:336) Context initialization failedjava.lang.NoSuchMethodError: org.springframewo...原创 2018-04-11 08:16:06 · 15127 阅读 · 0 评论 -
Spring:7种事务传播行为
7种事务传播行为所谓事务传播行为就是多个事务方法相互调用时,事务如何在这些方法间传播。Spring支持以下7种事务传播行为。 传播行为含义PROPAGATION_REQUIRED(XML文件中为REQUIRED)表示当前方法必须在一个具有事务的上下文中运行,如有客户端有事务在进行,那么被调用端将在该事务中运行,否则的话重新开启一个事务。(如果被调用端发生异常,那么调用端和被调用端事务都将回滚)PR...原创 2018-04-23 08:55:44 · 6396 阅读 · 0 评论 -
Spring中获取request的几种方法,及其线程安全性分析
前言本文将介绍在Spring MVC开发的web系统中,获取request对象的几种方法,并讨论其线程安全性。目录概述如何测试线程安全性方法1:Controller中加参数方法2:自动注入方法3:基类中自动注入方法4:手动调用方法5:@ModelAttribute方法总结概述在使用Spring MVC开发Web系统时,经常需要在处理请求时使用request对象,比如获取客户端ip地址、请求的url...转载 2018-04-20 07:45:23 · 5493 阅读 · 0 评论 -
Spring:代理Filter:DelegatingFilterProxy原理和作用
DelegatingFilterProxy就是一个对于servlet filter的代理,用这个类的好处主要是通过Spring容器来管理servlet filter的生命周期,还有就是如果filter中需要一些Spring容器的实例,可以通过spring直接注入, 另外读取一些配置文件这些便利的操作都可以通过Spring来配置实现。Spring web在设计的时候考虑到某些功能的实...原创 2019-07-08 16:18:27 · 22094 阅读 · 3 评论