
Spring
小林一
这个作者很懒,什么都没留下…
展开
-
用自定义注解,给参数赋值
业务场景:之前系统中页面上选择的站点默认的是全部的,现在要增加权限功能,只有用户有权限的站点才显示到页面上。为了最小限度的修改代码,决定用注解的方式对站点参数统一整理后再赋值主要用到的是SpringMvc的HandlerMethodArgumentResolver接口和自定义注解类1.创建自定义注解:@Target(ElementType.PARAMETER)@Retention(Ret...原创 2019-02-24 16:23:25 · 8979 阅读 · 0 评论 -
Spring中 context:annotation-config 的作用
最近在研究Spring中<context:annotation-config/>配置的作用,现记录如下:<context:annotation-config/>的作用是向Spring容器注册以下四个BeanPostProcessor:AutowiredAnnotationBeanPostProcessorCommonAnnotationBeanPostProces...转载 2018-05-21 15:36:44 · 614 阅读 · 0 评论 -
spring获取bean的两种方式
方法一:在初始化时保存ApplicationContext对象 代码: ApplicationContext ac = new FileSystemXmlApplicationContext(“applicationContext.xml”); ac.getBean(“beanId”); 说明:这种方式适用于采用Spring框架的独立应用程序,需要程序通过配置文件手工初始化Spring的情况。...转载 2018-05-21 14:54:25 · 1176 阅读 · 0 评论 -
spring-retry重试支持
什么时候需要重处理?在实际工作中,重处理是一个非常常见的场景,比如:发送消息失败,调用远程服务失败,争抢锁失败,等等,这些错误可能是因为网络波动造成的,等待过后重处理就能成功.通常来说,会用try/catch,while循环之类的语法来进行重处理,但是这样的做法缺乏统一性,并且不是很方便,要多写很多代码.然而spring-retry却可以通过注解,在不入侵原有业务逻辑代码的方式下,优雅的实现重处理功转载 2018-05-10 10:18:54 · 812 阅读 · 0 评论 -
spring 事务控制 设置手动回滚
1 //假设这是一个service类的片段 2 3 try{ 4 //出现异常 5 } catch (Exception e) { 6 e.printStackTrace(); 7 //设置手动回滚 8 TransactionAspectSupport.currentTransactionStatus()转载 2018-02-27 14:26:19 · 3724 阅读 · 2 评论 -
spring JSR303进行数据验证
一、JSR-303简介JSR-303 是 Java EE 6 中的一项子规范,叫做 Bean Validation,官方参考实现是hibernate Validator。此实现与 Hibernate ORM 没有任何关系。 JSR 303 用于对 Java Bean 中的字段的值进行验证。 spring MVC 3.x 之中也大力支持 JSR-303,可以在控制器中对表单提交的数据方便地验证。转载 2017-09-01 14:35:05 · 332 阅读 · 0 评论 -
Tomcat启动时加载数据到缓存--Web.xml里listener的加载顺序,优先初始化Spring IOC容器
最近用到在Tomcat服务器启动时自动加载数据到缓存,这就需要创建一个自定义的缓存监听器并实现ServletContextListener接口,并且在此自定义监听器中需要用到Spring的依赖注入功能.在web.xml文件中监听器配置如下:Xml代码 <listener> <listener-class> org.springframework.web转载 2017-07-25 14:41:22 · 3073 阅读 · 1 评论 -
StringUtils.isEmpty和StringUtils.isBlank用法和区别
两个方法都是判断字符是否为空的。前者是要求没有任何字符,即str==null 或 str.length()==0;后者要求是空白字符,即无意义字符。其实isBlank判断的空字符是包括了isEmpty的。换句话说,isEmpty判断的范围更小在校验一个String类型的变量是否为空时,通常存在3中情况是否为 null 是否为 “” 是否为空字符串。 StringUtils的isBlank()方原创 2017-04-07 09:27:32 · 3918 阅读 · 1 评论 -
spring接口文档注解:@ApiOperation
@ApiOperation和@ApiParam为添加的API相关注解,个参数说明如下: @ApiOperation(value = “接口说明”, httpMethod = “接口请求方式”, response = “接口返回参数类型”, notes = “接口发布说明”;其他参数可参考源码; @ApiParam(required = “是否必须参数”, name = “参数名称”, value原创 2017-03-31 15:54:12 · 168994 阅读 · 8 评论 -
spring用junit进行单元测试
1.首先什么是junit 简单的说,Junit 是一个基于Java语言的回归单元测试框架。是白盒测试的一种技术,记住这些就可以了。一般的Java项目创建junit参考如下连接: http://jingyan.baidu.com/article/380abd0a4d021a1d91192c40.html2.spring的测试套件:Spring Test+JUnit完美组合 发现通过Spri转载 2017-03-28 10:38:32 · 724 阅读 · 0 评论 -
spring控制器的演变
二、Spring2.5引入注解式处理器支持,通过@Controller 和 @RequestMapping注解定义我们的处理器类。并且提供了一组强大的注解:需要通过处理器映射DefaultAnnotationHandlerMapping和处理器适配器AnnotationMethodHandlerAdapter来开启支持@Controller 和 @RequestMapping注解的处理器。Defau转载 2017-01-12 10:21:39 · 342 阅读 · 0 评论 -
spring中对异常的统一处理
对于那些在程序中直接抛给spring的异常,spring该如何处理: 运用aop的思想,首先定义一个spring异常的处理类,如下:/** * 异常处理类,把异常打印到日志中 * @author zyq * */public class ExceptionHandler implements ThrowsAdvice { private static Logger LOGGER =原创 2016-09-08 11:22:40 · 754 阅读 · 0 评论 -
log4j日志管理
1.现在项目中加载日志的jar包,如果把配置文件放到src目录下,则不用配置,否则需要的web.xml文件中配置log4j的文件路径 2.日志如何把不同级别日志输出到不同的文件夹,并且每日生成一个日志 因为org.apache.log4j.DailyRollingFileAppender是输出当前级别及以上的日志,所以如果要只输出当前级别日志,需要对此方法重写,如下:public class M原创 2016-09-08 10:49:30 · 418 阅读 · 0 评论 -
spring中非注解类调用注解类
/** * spring中没有注解的类,调用注解方法或类时,需借助一下工具类进行调用 * @author z * */public class SpringContextUtil implements ApplicationContextAware { private static ApplicationContext context = null; /* (non转载 2016-09-08 10:30:49 · 1691 阅读 · 0 评论 -
spring mvc @ResponseBody
@ResponseBody 将内容或对象作为 HTTP 响应正文返回,并调用适合HttpMessageConverter的Adapter转换对象,写入输出流。java类:@RequestMapping(value="jt/login.do",method=RequestMethod.POST) @ResponseBody public JsonBean isLogin(HttpSer原创 2016-08-09 16:40:28 · 288 阅读 · 0 评论 -
spring mvc 图片上传
jsp:<html> <head> <script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery.min.js"></script> <script type="text/javascript"> function fileChange(obj){ al原创 2016-08-08 15:52:26 · 517 阅读 · 0 评论