Spring
E_k_in
这个作者很懒,什么都没留下…
展开
-
Spring定时任务
Spring提供了一个很简单的方法做定时任务,我之前用过quartz,这个虽然也是spring的定时任务技术,但是我感觉quartz任然是比较复杂的。关于quartz实现定时任务这里就不详细讲解了。今天主要讲解利用spring task:注解主动注入定时任务 1 首先需要在spring-context.xml文件中引入下列代码。pool-size 定义了任务池的大小。原创 2017-08-06 10:02:37 · 300 阅读 · 0 评论 -
Spring BeanPostProcessor(后处理器)的简单使用
Spring创建bean是根据配置来的,你可以通过xml文件配置,也可以通过java 的方式来配置,Spring在IOC容器完成bean的实例化、配置和初始化后可以通过BeanPostProcessor(后处理器)对创建的bean进行各种处理。你可以在这里修改bean的属性或者增强bean,spring AOP创建jdk代理或者cglib代理的过程就是在BeanPostProcessor(后处理器原创 2017-10-17 21:25:19 · 2178 阅读 · 1 评论 -
Spring 国际化
ApplicationContext接口扩展了MessageSource接口,因而提供了消息处理的功能(i18n或者国际化)。当一个ApplicationContext被加载时,它会自动在context中查找已定义为MessageSource类型的bean。此bean的名称须为messageSource。如果找到,那么所有对上述方法的调用将被委托给该bean。否则ApplicationContex原创 2017-10-17 22:11:57 · 213 阅读 · 0 评论 -
SpringMVC理解之一:应用上下文webApplicationContext
一、先说ServletContext javaee标准规定了,servlet容器需要在应用项目启动时,给应用项目初始化一个ServletContext作为公共环境容器存放公共信息。ServletContext中的信息都是由容器提供的。举例:通过自定义contextListener获取web.xml中配置的参数 1.容器启动时,找到配置文件中的context-param作为键值对放到S转载 2017-09-21 17:57:08 · 263 阅读 · 0 评论 -
@Value("#{}")与@Value("${}")的区别
1 @Value("#{}") SpEL表达式@Value("#{}") 表示SpEl表达式通常用来获取bean的属性,或者调用bean的某个方法。当然还有可以表示常量@RestController@RequestMapping("/login")@Componentpublic class LoginController { @Value("#{1}") private原创 2017-09-21 18:34:08 · 61200 阅读 · 0 评论 -
Spring Bean的作用域以及lookup-method标签的使用
Spring Framework支持五种作用域,如下图所示:singleton:表示一个容器中只会存在一个bean实例,无论在多少个其他bean里面依赖singleton bean,整个容器都只会存在一个实例。相当于是容器的全局变量。prototype:一个容器中可能会存在多个bean实例,prototype bean的实例产生有两种情况,一种是其他bean请求依赖prototyp原创 2017-10-17 20:42:23 · 929 阅读 · 0 评论 -
Spring MultipartFile 文件上传
在以前的处理上传文件的时候我都是将文件标签单独置于一个 form 标签中,每次提交表单,先提交文件的表单,然后上传文件成功后返回一个文件的id,再将文件的id绑定到外层的表单上。其实并不需要这么麻烦,文件可以和其他属性通过一次提交全部将数据交给控制器。下面我将实现一个 在一个表单通过一次请求 提交一个实体对象以及文件到控制器,并实现数据的持久化。1 首先配置是spring支持Multipart原创 2017-11-07 21:57:40 · 780 阅读 · 0 评论 -
Spring 视图技术 xslt以及文档视图
Spring的一个优秀之处在于,把view层技术与MVC框架的其他部分分离开来。 例如,选择使用Velocity或者XSLT来代替已有的JSP方式只需要修改配置就可以实现。一:xslt视图下面利用xslt视图技术实现word形式的视图1 首先在ServletConfig.java中注册xslt的视图解析器。@Bean public ViewResolver viewRe原创 2017-10-23 20:03:26 · 493 阅读 · 0 评论 -
Spring项目处理异常
spring对于非ajax提交的请求可以有两种处理方式:一种是一种是将异常映射为HTTP状态码,通过状态码将不同的错误状态定义到指定的错误页面。一种是通过@ExceptionHandler处理指定的异常类型。非Ajax提交异常处理一:将异常映射为HTTP状态码1 首先在异常的地方抛出自定义异常 throw new NotFoundException()@Reques原创 2017-10-23 20:57:56 · 305 阅读 · 0 评论 -
@DeclareParents为某个类及其所有子类动态代理新增实现接口
通过spring aop 的@DeclareParents注释可以为某个类及其所有子类(这些子类必须为非 final 类)动态代理新增实现接口,从而达到为该类及其所有子类新增方法的目的。java语言的运行必须先经过编译才能运行,所以是不可能在运行时添加新的方法的,除非改变源代码,在父类中添加方法然后再编译。但有些时候我们没有办法得到某些类的源代码,比如已经封装好了的jar文件里面的类。但是由于业务原创 2017-09-21 13:44:44 · 1360 阅读 · 0 评论 -
spring获取连接点参数的两种方法
在一个系统中,我们希望在用户在登录的前后记录日志,并将用户的登录信息(登录参数)记录到日志中。我们可以用spring aop来实现这个功能。在本文将会展示两种spring aop获取参数的方法。1 首先新建个LoginController,有一个login方法@RequestMapping("login") public String login(String name,String p原创 2017-09-21 10:39:30 · 1041 阅读 · 0 评论 -
web应用实现filter
在我们设计系统的时候,常常用filter来控制防止用户未登录的状态下直接输入URL访问服务器的数据。如果用户在未登录状态下输入非法的URL,为了良好的体验性,系统最好是跳转到系统的登录页面,让用户登录。这篇文章将会简单实现这个功能。通过实现 javax.servlet.Filter 接口来控制。当然你也可以使用其他的安全框架来维护系统的安全,比如Apache 的shiro 以及Spring 的 s原创 2017-09-20 23:41:58 · 278 阅读 · 0 评论 -
Spring日志记录+线程池
本文将介绍在Spring框架下如何利用拦截器做日志记录,简化我们的日志处理,1 首先我们需要在Spring-mvc.xml中注册这个拦截器,代码如下: 2 新建一个日志类 (setter、getter方法就没有拷贝了,但是重写了setParams方法)public class Log { private static final long s原创 2017-08-03 06:33:25 · 2075 阅读 · 0 评论 -
利用Annotation和Aop实现日志记录
在这这篇文章里面会降到两个知识点,一个是annotation 另一个就是Aop。我们先来实现一个记录日志的方法。1 首先创建一个annotation接口:@Target(ElementType.METHOD)//定义该注释标签作用对象为方法。@Retention(RetentionPolicy.RUNTIME)//定义该注释标签保存范围为 JVM ,(保存范围还有 source(原创 2017-09-05 07:30:09 · 1297 阅读 · 0 评论 -
spring Aop
前面一篇文章讲到了 annotation+aop完成日志记录。这篇文章主要讲解aop的用法。例如我想为login动作增强下,在login动作执行之前和之后都输出一下。1 首先新建一个方法login方法: @RequestMapping("loginIn") public String loginIn(){ DataSourceUtils ds = (DataSourceUtil原创 2017-09-05 08:06:32 · 140 阅读 · 0 评论 -
spring form 以及数据校验
本文将讲述spring form的一些常用标签,以及基于org.hibernate.validator和javax.validation 的javabean数据校验。1 在views/home/下面建一个index.jsp 在jsp头部引入 然后写一个form表单。该表单每个标签下面都有一个 标签 这个标签是用来接收该属性的错误信息的 用户名: 密码: 年龄:原创 2017-09-23 09:34:27 · 543 阅读 · 0 评论 -
Spring MVC 零配置 / Spring MVC JavaConfig
Spring MVC 零配置 / Spring MVC JavaConfig1. Spring MVC的核心就是DispatcherServlet类,Spring MVC处理请求的流程如下图所示: 2. Spring MVC中典型的上下文层次当我们初始化一个DispatcherServlet类时,Spring MVC会在web应用的WEB-INF目录下查找转载 2017-09-23 18:03:06 · 233 阅读 · 0 评论 -
用java Config代替xml 搭建SpringMVC项目
spring注入bean有三种方式,通过注解,java Config 以及xml。而 注解优于java Config 而java Config优于xml。现在我们逐渐少用xml来配置springmvc项目了。本文将不用xml文件开启springMvc项目1首先新建一个maven项目 pom.xml文件的内容如下所示(其中引用了常用的工具包日志包spring核心包以及springweb的包以及m原创 2017-09-22 09:22:42 · 1394 阅读 · 0 评论 -
Spring in Action : MVC 配置(JAVA方式)
异步赠书:9月重磅新书升级,本本经典 SDCC 2017之区块链技术实战线上峰会 程序员9月书讯 每周荐书:ES6、虚拟现实、物联网(评论送书)Spring 4 学习笔记7:MVC 配置(JAVA方式)标签: springspring mvc2016-09-28 07:17 2996人阅读 评论(0)收藏举报转载 2017-09-23 17:39:24 · 222 阅读 · 0 评论 -
Spring CustomPropertyEditor
这篇文章主要介绍spring的自定义属性编辑器。一般地我们在xml配置文件中配置的属性值都是String类型的。如:1994-09-13通过注入到bean里面后是字符串类型的,如果UserMan这个类中的birthday是Date类型的,Spring再启动的时候就会报错。为了将1994-09-13转化为日期类型,需要注册一个将字符串转换为Date类型的自定义属性编辑器。1原创 2017-09-12 21:01:34 · 230 阅读 · 0 评论 -
Spring启动步骤
经过无数次debug Spring源码,对spring整体启动过程有了大致了解。因为spring体系太过复杂,我也没用能力把spring讲的面面俱到并且没用错误。要想掌握spring的细节,还需要自己去debug源码。spring的启动方式很很多比如通过springboot配置去启动,或者通过ClassPathXmlApplicationContext context = new ClassPat...原创 2019-01-02 16:56:19 · 299 阅读 · 0 评论