主流框架-SSH架构
小米加大炮
天生我材必有用,千金散尽还复来!
展开
-
SSH框架(二) 利用AbstractRoutingDataSource实现动态数据源切换
在Spring 2.0.1中引入了AbstractRoutingDataSource, 该类充当了DataSource的路由中介, 能有在运行时, 根据某种key值来动态切换到真正的DataSource上。 Spring动态配置多数据源,即在大型应用中对数据进行切分,并且采用多个数据库实例进行管理,这样可以有效提高系统的水平伸缩性。而这样的方案就会不同于常见的单一数据实例的方案,这转载 2014-12-31 12:53:14 · 1457 阅读 · 0 评论 -
spring(基础七) spring事务回滚详解
(一) 用编程的方法来实现,我觉得这种方法比较灵活,控制起来比较方便,但是需要写一些额外的代码转载 2014-12-26 11:58:03 · 773 阅读 · 0 评论 -
Hibernate(基础一) Hibernate3的动态条件查询DetachedCriteria用法
在常规的Web编程中,有大量的动态条件查询,即用户在网页上面自由选择某些条件,程序根据用户的选择条件,动态生成SQL语句,进行查询。 针对这种需求,对于分层应用程序来说,Web层需要传递一个查询的条件列表给业务层对象,业务层对象获得这个条件列表之后,然后依次取出条件,构造查询语句。这里的一个难点是条件列表用什么来构造?传统上使用Map,但是这种方式缺陷很大,Map可以传递的信息非常有限,转载 2016-06-12 17:39:31 · 1343 阅读 · 0 评论 -
spring(错误二) Error creating bean with name 'xxxx'
报错信息如下:[QPWA.WL] 2016-07-04 18:05:25 [ERROR] (ContextLoader.java:331) - Context initialization failedorg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'alipayBa原创 2016-07-06 09:50:17 · 23342 阅读 · 0 评论 -
spring(基础13) 使用spring详解来构造IoC容器
用注解来向Spring容器注册Bean。需要在applicationContext.xml中注册。如:在base-package指明一个包表明cn.gacl.java包及其子包中,如果某个类的头上带有特定的注解【@Component/@Repository/@Service/@Controller】,就会将这个对象作为Bean注册进Spring容器。也可以在<context:com转载 2016-07-06 16:59:57 · 380 阅读 · 0 评论 -
spring(基础14) spring常用注解汇总
使用注解之前要开启自动扫描功能其中base-package为需要扫描的包(含子包)。@Configuration把一个类作为一个IoC容器,它的某个方法头上如果注册了@Bean,就会作为这个Spring容器中的Bean。@Scope注解 作用域@Lazy(true) 表示延迟初始化@Service用于标注业务层组件、 @Controller用于标注控制层组件(如st转载 2016-11-21 13:10:57 · 356 阅读 · 0 评论 -
spring(基础15) 获取spring的ApplicationContext几种方式
常用的5种获取spring 中bean的方式总结:方法一:在初始化时保存ApplicationContext对象ApplicationContext ac = new FileSystemXmlApplicationContext("applicationContext.xml");ac.getBean("beanId");说明:这种方式适用于采用Spring框架的独立应用程序,需要程序原创 2016-11-21 13:24:23 · 586 阅读 · 0 评论 -
spring(错误三) 报错" a different object with the same identifier value was already associated ..."
错误信息如下:org.springframework.dao.DuplicateKeyException: a different object with the same identifier value was already associated with the session:具体为:[FIN.PAY] 2016-12-03 16:39:06 [ERROR] (Third原创 2016-12-13 09:19:44 · 2296 阅读 · 0 评论 -
spring(基础16) Spring No adapter for handler异常
在spring MVC框架中,当通过注解@Controller方式实现控制器和其他不同类型的控制器(如继承Controller的方式的控制器)一起使用的时候,通常需要配置Adapter.1,在和继承SimpleFormController 作为控制器使用的时候(public class LoginController extends SimpleFormController ),需要在-s转载 2016-12-13 09:25:33 · 4258 阅读 · 0 评论 -
spring(基础16) Spring事务管理二
声明式的事务管理(Declarative transaction management): 事务配置方式: <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name=转载 2017-01-06 10:19:17 · 317 阅读 · 0 评论 -
spring(基础17) Spring的@Transactional注解详细用法
概述事务管理对于企业应用来说是至关重要的,即使出现异常情况,它也可以保证数据的一致性。Spring Framework对事务管理提供了一致的抽象,其特点如下:为不同的事务API提供一致的编程模型,比如JTA(Java Transaction API), JDBC, Hibernate, JPA(Java Persistence API和JDO(Java Data Objects转载 2017-01-07 16:23:34 · 403 阅读 · 0 评论 -
spring(基础18) Sprin事务和synchronized锁的一些问题
1 问题描述最近有小伙伴在做商品抽奖活动时,在对奖品库存进行扣减,有线程安全的问题,遂加锁synchronized进行同步,但发现加锁后并没有控制住库存线程安全的问题,导致库存仍被超发。先简单介绍下,各层的技术架构:中间层框架:Spring 4.1.0持久层:MyBatis 3.2.6MVC框架:Spring MVC 4.1.0存在问题的代码:转载 2017-01-11 12:33:42 · 10209 阅读 · 3 评论 -
spring(基础19) 注解@Scope详解
1.目前,scope的取值有5种取值:在Spring 2.0之前,有singleton和prototype两种;在Spring 2.0之后,为支持web应用的ApplicationContext,增强另外三种:request,session和global session类型,它们只实用于web程序,通常是和XmlWebApplicationContext共同使用。原创 2017-06-15 15:10:14 · 723 阅读 · 0 评论 -
spring(基础20) threadLocal在spring框架中的运用
一、ThreadLocal是什么 早在JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。 ThreadLocal,顾名思义,它不是一个线程,而是线程的一个本地化对象。当工作于多线程中的对象使用ThreadLocal维护变量时,ThreadLocal转载 2017-08-11 17:59:02 · 6804 阅读 · 1 评论 -
spring(基础21) hibernate处理批量更新和批量删除
一、需求背景通常,在一个Session对象的缓存中只存放数量有限的持久化对象,等到Session对象处理事务完毕,还要关闭Session对象,从而及时释放Session的缓存占用的内存。批量处理数据是指在一个事务中处理大量数据。以下程序在一个事务中批量更新CUSTOMERS表中年龄大于零的所有记录的AGE字段:Transaction tx = session.beginTransa转载 2017-09-25 14:26:31 · 2243 阅读 · 0 评论 -
spring(基础12) Spring注解@Transactional详解
在service类前加上@Transactional,声明这个service所有方法需要事务管理。 每一个业务方法开始时都会打开一个事务。Spring默认情况下会对运行期例外(RunTimeException)进行事务回滚。这个例外是unchecked如果遇到checked意外就不回滚。1 让checked例外也回滚:在整个方法前加上 @Transactional(rollbackFor=Exce...转载 2018-07-10 18:08:41 · 295 阅读 · 0 评论 -
spring(基础22) Spring AOP切点pointcut的详解
在Spring 2.0中,Pointcut的定义包括两个部分:Pointcut表示式(expression)和Pointcut签名(signature)。让我们先看看execution表示式的格式:execution(modifier-pattern?ret-type-patterndeclaring-type-pattern?name-pattern(param-pattern)...转载 2018-07-20 17:49:31 · 1046 阅读 · 0 评论 -
spring(基础23) try catch对Spring事务的影响
一、spring事务回滚Spring 的默认事务机制,当出现unchecked异常时候回滚,checked异常的时候不会回滚。异常中unchecked异常包括error和runtime异常。需要try catch或向上抛出的异常,为checked异常比如IOException,也就是说程序抛出runtime异常的时候才会进行回滚,其他异常不回滚,可以配置设置所有异常回滚:@Tran...原创 2019-04-25 15:47:01 · 1040 阅读 · 0 评论 -
spring(基础12) Spring AOP 详解
此前对于AOP的使用仅限于声明式事务,除此之外在实际开发中也没有遇到过与之相关的问题。最近项目中遇到了以下几点需求,仔细思考之后,觉得采用AOP 来解决。一方面是为了以更加灵活的方式来解决问题,另一方面是借此机会深入学习Spring AOP相关的内容。本文是权当本人的自己AOP学习笔记,以下需求不用AOP肯定也能解决,至于是否牵强附会,仁者见仁智者见智。对部分函数的调用进行日志记录,用于观转载 2016-05-03 14:27:43 · 491 阅读 · 0 评论 -
spring(基础11) Spring AOP 实现原理
什么是AOPAOP(Aspect-OrientedProgramming,面向方面编程),可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善。OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。当我们需要为分散的对象引入公共行为的时候,OOP则显得无能为力。也就是说,OOP允许你定义从上到下的关系,但并不适合定转载 2016-05-03 14:18:29 · 443 阅读 · 0 评论 -
spring(基础11) Spring 工具类AntPathMatcher
package cn.bidlink.wsmp.commons.security; import junit.framework.TestCase; import org.springframework.util.AntPathMatcher; import org.springframework.util.PathMatcher; public class Ant转载 2016-02-01 19:19:17 · 1086 阅读 · 0 评论 -
SSH框架(一) Web开发中获取Spring的ApplicationContext的三种方式
在 WEB 开发中,可能会很少需要显示的获得 ApplicationContext 来得到由 Spring 进行管理的某些 Bean, 今天我就遇到了,在这里和大家分享一下, WEB 开发中,怎么获取 ApplicationContext 一 要想怎么获取 ApplicationContext, 首先必须明白 Spring 内部 ApplicationContext 是怎样存储转载 2014-08-20 13:52:15 · 581 阅读 · 0 评论 -
SSH框架(三) 常用WEB框架Struts1、Struts2和Spring MVC三者的区别
二:Struts1.x A配置: 1 导入struts1.x的jar包到web-inf/lib下面 2 在web-inf目录下新建struts-config.xml文件,配置struts相关内容 3 web.xml配置加入: action org.apache.struts.action.ActionServlet转载 2015-04-13 16:30:22 · 1929 阅读 · 0 评论 -
spring(基础八) spring 定时任务的几种实现
近日项目开发中需要执行一些定时任务,比如需要在每天凌晨时候,分析一次前一天的日志信息,借此机会整理了一下定时任务的几种实现方式,由于项目采用spring框架,所以我都将结合spring框架来介绍。一.分类从实现的技术上来分类,目前主要有三种技术(或者说有三种产品):Java自带的java.util.Timer类,这个类允许你调度一个java.util.T转载 2015-04-14 14:25:24 · 446 阅读 · 0 评论 -
spring(基础七) spring mvc 使用步骤详解
1.使用springMVC也可以代替struts2,当然只是代替业务分发的功能,struts2的一些其他功能它是没有的,不然要struts2有什么用。2.下面我用springMVC代替struts2去整合hibernate实现简单的员工查询功能。3.使用springMVC有两个配置文件需要配置,一个是applicationContext.xml、另一个是web.xml,在applicati转载 2015-04-14 13:51:00 · 803 阅读 · 0 评论 -
spring(基础六) spring mvc 配置详解
现在主流的Web MVC框架除了Struts这个主力 外,其次就是Spring MVC了,因此这也是作为一名程序员需要掌握的主流框架,框架选择多了,应对多变的需求和业务时,可实行的方案自然就多了。不过要想灵活运用Spring MVC来应对大多数的Web开发,就必须要掌握它的配置及原理。 一、Spring MVC环境搭建:(Spring 2.5.6 + Hibernate 3.2.0)转载 2015-04-14 10:51:10 · 480 阅读 · 0 评论 -
spring(基础二) 注解@Component,@Service,@Controller,@Repository
Spring 2.5 中除了提供 @Component 注释外,还定义了几个拥有特殊语义的注释,它们分别是:@Repository、@Service 和 @Controller。在目前的 Spring 版本中,这 3 个注释和 @Component 是等效的,但是从注释类的命名上,很容易看出这 3 个注释分别和持久层、业务层和控制层(Web 层)相对应。虽然目前这 3 个注释和 @Componen原创 2014-08-05 15:33:00 · 677 阅读 · 0 评论 -
struts2基础(一) struts2标签<s:token />防止表单重复提交
标签防止表单重复提交,用法如下:第一步:在表单中加入 第二步:在struts.xml文件中配置拦截器 /WEB-INF/page/messa转载 2014-05-09 10:59:00 · 557 阅读 · 0 评论 -
spring(基础一) 注解 @Autowired 与@Resource的区别
一 相同点:原创 2014-08-05 14:31:05 · 542 阅读 · 0 评论 -
spring(基础三) spring定时任务+线池程实现
1、定时任务中时间设置是这样的 在某些配置下某任务开始后还没执行完过了5秒,第二个任务又起来了。这与我的设计冲突。我希望任务是执行完后等5秒再进行第二个任务。最后发现这个类可以<bean id="springScheduleExecutorTask" class="org.springframework.scheduling.concurrent.原创 2015-04-03 09:01:13 · 1883 阅读 · 0 评论 -
spring(基础六) spring中Bean属性为集合的注入方式
实体类CollectionBean{List cityList,Set citySet,String[] cityArray,Map mms,Properties props} get(),set()方法applicationContext.xml中转载 2014-09-23 10:08:22 · 845 阅读 · 2 评论 -
spring(基础四) spring提供的三种定时任务机制及其比较
定时任务的需求在众多应用系统中广泛存在,在Spring中,我们可以使用三种不同的定时机制,下面一一描述并加以比较1. 基于Quartz的定时机制下面详细解释这个类图中涉及的关键类及其使用场景1.1. SchedulerFactoryBean这是Spring中基于Quartz的定时机制入口,只要Spring容器装载了这个类,Quartz定时机制就会启动,并加载转载 2015-04-03 09:10:20 · 2044 阅读 · 0 评论 -
spring(基础五) spring实现后台的任务调度TimerTask和Quartz
最近整后台,涉及到两个后台调度的问题。一是以时间间隔为条件的轮询调度;运用场景:每隔5分钟抓取数据;二是一某个时间点为条件的轮询调度;运用场景:后台日志货报表生成上传,每个周一生成上一周的,每个月初生成上一月。其实按周来执行调度,用前面一个场景也可以实现,但是按月生成,因为每月时间不固定,必须动态判断和执行。后台实现调度的转载 2015-04-03 16:56:43 · 1752 阅读 · 0 评论 -
spring(基础九) spring mvc 工作原理
Spring MVC工作流程图Spring工作流程描述 1. 用户向服务器发送请求,请求被Spring 前端控制Servelt DispatcherServlet捕获; 2. DispatcherServlet对请求URL进行解析,得到请求资源标识符(URI)。然后根据该URI,调用HandlerMapping获得该Handler配置转载 2015-08-10 15:03:10 · 559 阅读 · 0 评论 -
spring(错误一) spring mvc上传多张图片,报错:java.lang.NoSuchMethodException解决方案
问题描述:使用spring mvc框架上传多张图片时,报错信息如下:八月 14, 2015 9:24:27 上午 org.apache.catalina.core.StandardWrapperValve invoke严重: Servlet.service() for servlet [spring-mvc] in context with path [/xyxback] threw e原创 2015-08-14 09:35:10 · 8822 阅读 · 0 评论 -
spring(基础十) Spring HTTP Invoker使用介绍
Spring HTTP Invoker一种JAVA远程方法调用框架实现,原理与JDK的RMI基本一致,所以我们先跟其它JAVA远程方法调用实现做下简单比较。RMI:使用JRMP协议(基于TCP/IP),不允许穿透防火墙,使用JAVA系列化方式,使用于任何JAVA应用之间相互调用。Hessian:使用HTTP协议,允许穿透防火墙,使用自己的系列化方式,支持JAVA、C++转载 2015-12-11 14:36:01 · 2774 阅读 · 0 评论 -
SSH框架(四) Spring、Spring MVC、Struts2优缺点整理
一、Spring 及其优点大部分项目都少不了Spring的身影,为什么大家对他如此青睐,而且对他的追捧丝毫没有减退之势呢Spring是什么:Spring是一个轻量级的DI和AOP容器框架。说它轻量级有一大部分原因是相对与EJB的(虽然本人从没有接触过EJB的应用),重要的是,Spring是非侵入式的,基于spring开发的应用一般转载 2016-02-22 17:01:16 · 3339 阅读 · 0 评论 -
spring(基础10) 注解@Value详解
一 配置方式@value需要参数,这里参数可以是两种形式:@Value("#{configProperties['t1.msgname']}")或者@Value("${t1.msgname}");这两形式,在配置上有什么区别:1、@Value("#{configProperties['t1.msgname']}")这种形式的配置中有“configProperties”,其实它指原创 2016-02-25 11:15:56 · 53119 阅读 · 3 评论 -
spring(基础24) Spring注解@Transactional配置事务
1、详细介绍事务管理是应用系统开发中必不可少的一部分。Spring 为事务管理提供了丰富的功能支持。Spring 事务管理分为编程式和声明式的两种方式。编程式事务指的是通过编码方式实现事务;声明式事务基于 AOP,将具体业务逻辑与事务处理解耦。声明式事务管理使业务代码逻辑不受污染, 因此在实际使用中声明式事务用的比较多。声明式事务有两种方式,一种是在配置文件(xml)中做相关的事务规则声明,另...转载 2019-06-17 14:30:36 · 321 阅读 · 0 评论