Spring
Spring 系列
一朵风中摇曳的水仙花
世人多愿锦上添花,却少有人雪中送炭
展开
-
SpringMVC的类型转换器和数据格式化
一. 类型转换器前端传入的值,从表单中传入的值,都是字符串或者是字符串数组的形式传入的,在后端需要进行手动的转换类型,然后才能正确的使用。 框架一般对常见的数据类型的转换进行了封装提供,如字符串转换成数字等。SpringMVC 也提供了一些内置的转换器。有标量的转换器,即字符串到数字,字符串到Boolean等。(图片引用于: http://c.biancheng.net/view/4415.html)也有集合类型的转换器, 如数组到集合, 拼接型字符器(如,) 到集合等。(图片引用于:转载 2020-12-11 16:19:10 · 1085 阅读 · 2 评论 -
spring注解式参数校验
一般入参我们都会转为vo对象。那么直接在对象的属性上注解即可。其实spring用的是hibernate的validator.步骤1.配置spring.xml<mvc:annotation-driven />2.配置自己的validate类。 <bean id="validateArgsAOP" class="com.my.validate.aop.ValidateArgsAOP"/> <aop:config> ...转载 2020-07-23 12:16:31 · 395 阅读 · 0 评论 -
Spring任务执行和调度(TaskExecutor,TaskSchedule)
1.介绍Spring Framework分别使用TaskExecutor和TaskScheduler接口提供异步执行和任务调度的抽象。 Spring还具有支持线程池或在应用程序服务器环境中委托给CommonJ的接口的实现。最终,在公共接口背后使用这些实现抽象出了Java SE 5,Java SE 6和Java EE环境之间的差异。Spring还提供了集成类,用于支持使用Timer(自1.3以来的JDK的一部分)和Quartz Scheduler(http://quartz-scheduler.org)转载 2020-07-23 12:17:29 · 1016 阅读 · 0 评论 -
taskExecutor使用
applicationContext.xml: <bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor"> <property name="corePoolSize" value="10" /> <property name="maxPoolSize" value="50" /> .转载 2020-07-23 12:17:38 · 1553 阅读 · 0 评论 -
spring aop获取目标对象的方法对象(包括方法上的注解)
这两天在学习权限控制模块。以前看过传智播客黎活明老师的巴巴运动网视频教程,里面就讲到权限控制的解决方案,当时也只是看看视频,没有动手实践,虽说看过几遍,可是对于系统中的权限控制还是很迷茫,所以借着这次机会动手实践一下。 黎活明老师的巴巴运动网使用的框架是struts + spring + jpa,大致思路是使用自定义注解,在需要权限控制的方法前使用注解定义方法所需的权限,然后使用AOP拦截访问的方法,在执行目标对象前通过反射取得目标对象所需的权限,然后从当前session中取得登陆用户,遍历用户所...转载 2020-07-21 15:55:22 · 545 阅读 · 0 评论 -
spring 注解aop切入点表达式怎么排除某些方法
@Pointcut("!execution(*aa.bb..*.set*(..))andexecution(*aa.bb..*.*(..))")如果是这种形式的法执行了很多其他方法比如init可以 把and换成 &&就可以解决了。@Pointcut("execution(*aa.bb..*.*(..))and!execution(*aa.bb..*.set*(..))")这种形式还是都执行了...转载 2020-07-21 15:06:33 · 1893 阅读 · 0 评论 -
Spring事务报错: org.springframework.transaction.UnexpectedRollbackException
异常信息:出现了不可预知的回滚异常,因为事务已经被标志位只能回滚,所以事务回滚了。org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only at org.springframework.transaction.support.AbstractPlatformTransactionManager.com.转载 2020-07-04 15:26:09 · 19009 阅读 · 7 评论 -
AbstractRoutingDataSource -- Spring提供的轻量级数据源切换方式
简单多数据源配置在一个普通Spring + Mybatis项目中,如果使用了多数据源,可以通过在dao层注入不同的SqlSessionTemplate来实现与不同数据库交互的目的。单个SqlSessionTemplate注入容器的过程如下: <!-- 配置数据源 --> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"> <property name=转载 2020-05-23 21:34:08 · 498 阅读 · 0 评论 -
SpringMVC 多层嵌套的数据接收与展现
业务需求与设计一个媒体可以创建多条返点规则返点规则 分为 阶梯返点 / 固定返点阶梯返点 分为 返点下限 与 返点上限 以及 返点率固定返点 分为 返点率设计返点规则 - 》 返点规则 JavaBean返点明细 -》 返点明细 JavaBean返点规则 下面有 返点明细(固定/阶梯)。返点明细package com.ybl.test.threet...转载 2019-11-18 10:51:04 · 637 阅读 · 0 评论 -
详解Spring 中如何控制2个bean中的初始化顺序
开发过程中有这样一个场景,2个 bean 初始化逻辑中有依赖关系,需要控制二者的初始化顺序。实现方式可以有多种,本文结合目前对 Spring 的理解,尝试列出几种思路。场景假设A,B两个 bean 都需要在初始化的时候从本地磁盘读取文件,其中B加载的文件,依赖A中加载的全局配置文件中配置的路径,所以需要A先于B初始化,此外A中的配置改变后也需要触发B的重新加载逻辑,所以A,B需要注入彼此。...转载 2019-01-08 21:45:41 · 29530 阅读 · 3 评论 -
Mybatis框架学习(四)—查询缓存与spring的整合开发
转载 2019-03-18 15:39:33 · 111 阅读 · 0 评论 -
SpringMVC静态资源文件无法加载问题解决办法
SpringMVC是我们常用用的框架,它提供两种静态资源文件放行的方式对静态资源放行自己设置路径:<mvc:resources location="/fonts/" mapping="/fonts/**"/><mvc:resources location="/js/" mapping="/js/**"/>12全部放行<mvc:default转载 2019-03-17 11:21:24 · 1152 阅读 · 1 评论 -
web.xml中security-constraint安全认证标签说明
在做web项目时由于想给webRoot下的jsp文件进行安全保护,控制不允许直接对jsp的访问,于是找到了tomcat的安全认证机制,只需要在web.xml中进行一定的配置即可,非常方便。1.因为使用了SpringMVC,这里先给出SpringMVC配置文件中的视图解析器配置<bean class="org.springframework.web.servlet.view.Inte...转载 2019-01-23 16:28:51 · 10631 阅读 · 0 评论 -
@RunWith和@ContextConfiguration的作用
@RunWith就是一个运行器@RunWith(JUnit4.class)就是指用JUnit4来运行@RunWith(SpringJUnit4ClassRunner.class),让测试运行于Spring测试环境@RunWith(Suite.class)的话就是一套测试集合, @ContextConfiguration Spring整合JUnit4测试时,使用注解引入多个配置文...转载 2019-01-23 15:59:43 · 997 阅读 · 1 评论 -
Spring工厂方式创建Bean实例
Spring工厂方式创建Bean实例创建Bean实例的方式: 1) 通过构造器(有参或无参) 方式: <bean id="" class=""/> 2) 通过静态工厂方法 方式: <bean id="" class="工厂类" factory-method="静态工厂方法"/> 注: 工厂类转载 2019-01-25 17:13:06 · 264 阅读 · 0 评论 -
springmvc之工作原理以及参数传递
index.jsp<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE><html><body><a href="param1.do?name=mike&age=20"...转载 2019-09-04 10:59:59 · 117 阅读 · 0 评论 -
Spring 自学系列之IOC-9【bean的生命周期】
spring中bean是有生命周期的从装入context开始,到context被destroy结束。分别对应init-method 和destroy-methd 方法。(1)init-method是bean被构造完成之后放入conext时需要执行的方法;(2)destroy-methd 是cotext被destroy时,bean也就不复存在了,也就是在destroy之前所应该执行的方法。(3)注意...原创 2018-03-18 21:25:55 · 146 阅读 · 0 评论 -
Spring @Value("#{}")和@Value("${}")
一.@Value("#{}")其实是SpEL表达式的值,可以表示常量的值,或者获取bean中的属性@RestController@RequestMapping("/login")@Componentpublic class LoginController { @Value("#{1}") private int number; //获取数字 1...原创 2019-08-30 09:29:23 · 516 阅读 · 0 评论 -
Postman测试传json格式,springmvc接收json 对象或者单个参数
Postman测试:headers 必须指定加application/json,不然报错,提示解析不了,因为默认是test的/** * 用map接收,个人推荐,可以直接点出来,基本map 可以搞很多事了 * @param map */ @PostMapping("/testAdd") public void save1(@...转载 2019-08-29 10:52:03 · 1561 阅读 · 1 评论 -
Spring Boot 注解:全家桶快速通
1、Spring Web MVC 与Spring Bean 注解1-1、Spring Web MVC 注解1-1-1、@RequestMapping@RequestMapping注解的主要用途是将Web请求与请求处理类中的方法进行映射。Spring MVC和Spring WebFlux都通过RquestMappingHandlerMapping和RequestMappingHndler...转载 2019-08-19 21:51:21 · 173 阅读 · 0 评论 -
@ResponseBody 和 @RequestBody 的作用
先提一嘴 @RequestMapping(“url”),这里的 url写的是请求路径的一部分,一般作用在 Controller的方法上,作为请求的映射地址。代码:@RequestMapping(value = "/test")//类级别映射,可以没有,一般用于减少书写量public class myController { //方法级别映射,必须有,那么这个方法的访问地址就是/...转载 2019-07-23 09:30:07 · 128 阅读 · 0 评论 -
使用Spring @DependsOn控制bean加载顺序
spring容器载入bean顺序是不确定的,spring框架没有约定特定顺序逻辑规范。但spring保证如果A依赖B(如beanA中有@Autowired B的变量),那么B将先于A被加载。但如果beanA不直接依赖B,我们如何让B仍先加载呢?控制bean初始化顺序可能有些场景中,bean A 间接依赖 bean B。如Bean B应该需要更新一些全局缓存,可能通过单例模式实现且没有在...转载 2019-01-08 21:07:15 · 923 阅读 · 0 评论 -
Spring Cacheable注解不缓存null值
@SuppressWarnings("unchecked") @Cacheable(value = "people", key="#person.id",condition = "#p0.id.equals(\"1\")")//操作成功 进行缓存 public ResultBean<Person> cacheCondition(Person person) {转载 2019-01-08 15:52:45 · 6436 阅读 · 0 评论 -
Spring(04)——p命名空间和c命名空间
Spring(04)——p命名空间和c命名空间 4 p命名空间和c命名空间在通过构造方法或set方法给bean注入关联项时通常是通过constructor-arg元素和property元素来定义的。在有了p命名空间和c命名空间时我们可以简单的把它们当做bean的一个属性来进行定义。4.1 p命名空间使用p命名空间时需要先声明使用对应的命名空间,即在beans元素上加入xmlns...转载 2018-08-25 18:22:51 · 173 阅读 · 0 评论 -
根据不同环境读取不同配置文件
根据不同环境读取不同配置文件2017年01月23日 15:14:18 阅读数:3279在真正生产开发的时候,我们经常需要根据不同的环境来读取不同的配置文件,一是因为不同环境所连接的数据库、zk集群等地址或账户秘密不一样,二是不同环境的资源配置不一样,生产环境可能会有4个数据库,而开发环境有1-2个就够了。那么这次就总结一下以前用到过的不同环境不同配置的方法,其实方法不止一种,不过这种...转载 2018-08-25 17:59:45 · 2785 阅读 · 0 评论 -
Spring 自学系列之IOC-9【bean的生命周期】
spring中bean是有生命周期的从装入context开始,到context被destroy结束。分别对应init-method 和destroy-methd 方法。(1)init-method是bean被构造完成之后放入conext时需要执行的方法;(2)destroy-methd 是cotext被destroy时,bean也就不复存在了,也就是在destroy之前所应该执行的方法。(3)注意...原创 2018-06-28 10:31:56 · 109 阅读 · 0 评论 -
spring IOC
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www原创 2018-06-27 09:44:10 · 111 阅读 · 0 评论 -
Spring 自学系列之AOP-01【@Pointcut】
package com.cmbcc.aop;import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.annotation.After;import org.aspectj.lang.annotation.Around;import org.aspectj.lang.annotation.Aspect;imp...原创 2018-05-22 22:22:38 · 158 阅读 · 0 评论 -
Spring 自学系列之IOC-11【@Resource】
@Resource(重要)a) 加入:j2ee/common-annotations.jarb) 默认按名称,名称找不到,按类型c) 可以指定特定名称d) 推荐使用e) 不足:如果没有源码,就无法运用annotation,只能使用xml例子如下所示:(1)xml配置<?xml version="1.0" encoding="UTF-8"?>&...原创 2018-03-19 17:58:21 · 248 阅读 · 0 评论 -
Spring 自学系列之IOC-10【注解开发@Autowired】
spring支持xml的装配,同时也支持使用@开头的注解开发。使用Annotation第一步:修改xml文件,添加<context:annotation-config />例子如下所示:(1)xml文件配置<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.or...原创 2018-03-18 21:34:03 · 165 阅读 · 0 评论 -
Spring 自学系列之IOC-8【自动装配autowire】
spring提供了bean的自动装配功能,用autowire来标识,可以使用根据名字来找或者根据类型来找。1) byName2) byType【如果同一个类型的在context中对应了多个bean,则会报错】3) 如果所有的bean都用同一种,可以使用beans的属性:default-autowire例子如下:<?xml version="1.0" encoding="UTF-8"?>...原创 2018-03-18 21:18:45 · 184 阅读 · 0 评论 -
Spring 自学系列之IOC-7【collection集合注入】
spring注入bean的时候可以为集合赋值,诸如list、map、set等,但是很少用到,了解即可。<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/X...原创 2018-03-18 21:13:52 · 225 阅读 · 0 评论 -
Spring 自学系列之IOC-6【scope属性 b) singleton VS proptotype 】
Spring针对每个bean都有scope属性,用于规定该bean是单例还是每次创建时都创建不同的对象,如下所示:a) singleton 单例b) proptotype 每次创建新的对象例子:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/sc...原创 2018-03-18 21:11:19 · 327 阅读 · 0 评论 -
Spring 自学系列之IOC-5【简单属性的注入】
spring 支持简单属性的注入,格式为 <property name=… value=….>例子如下所示:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.o.原创 2018-03-18 21:08:19 · 131 阅读 · 0 评论 -
Spring 自学系列之IOC-4 【bean的标识id VS name】
id vs. namea) id和name都可以作为标识,基本么有什么区别b) name可以用特殊字符如下所示:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2...原创 2018-03-18 21:05:46 · 167 阅读 · 0 评论 -
Spring 自学系列之IOC-3 【注入类型】
注入类型有以下三种方法b) setter(重要)c) 构造方法(可以忘记)d) 接口注入(可以忘记)如下所示<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/200...原创 2018-03-18 21:02:58 · 214 阅读 · 0 评论 -
Spring 自学系列之IOC-2
初识spring的IOC(1)service层package com.bjsxt.service;import com.bjsxt.dao.UserDAO;import com.bjsxt.model.User;public class UserService { private UserDAO userDAO; public void add(User user) { use...原创 2018-03-18 20:47:37 · 147 阅读 · 0 评论 -
Spring 缓存使用
Spring 缓存使用生效原理抽象而不是实现Spring框架中, 缓存服务是一组抽象, 也就是一组API, 由org.springframework.cache.Cache org.springframework.cache.CacheManager抽象. 抽象中并不包含多线程或者多进程处理逻辑, 这些逻辑应该由缓存实现方提供. Spring data工程默认提供了一些实现, ...转载 2018-08-25 18:30:11 · 234 阅读 · 0 评论 -
设计模式之---代理模式(AOP的原理)
代理模式有三种:静态代理,动态代理,Cglib代理。代理模式的功能主要是起到增强方法和权限拦截的作用。 1.静态代理: 其实代理模式根据这个名字就很好理解,举个简单例子:小明要去租房,但他找不到的房东,只能去找中介,中介再帮他找房东,而这个中介就起到了代理的作用。如图所示:小明的是用户类,调用者,中介就是代理类,房东就是目标类真正需要调用的类,这时代理类就可以在中间做点...转载 2018-10-10 11:09:31 · 233 阅读 · 0 评论 -
spring中@param和mybatis中@param使用区别
1.spring中@param/** * 查询指定用户和企业关联有没有配置角色 * @param businessId memberId * @return */ int selectRoleCount(@Param("businessId") Integer businessId,@Param("memberId") Long memberId);2.mybatis...转载 2018-10-11 10:22:12 · 226 阅读 · 0 评论