
Spring
文章平均质量分 92
在云端123
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Spring注解详解
概述注释配置相对于 XML 配置具有很多的优势:它可以充分利用 Java 的反射机制获取类结构信息,这些信息可以有效减少配置的工作。如使用 JPA 注释配置 ORM 映射时,我们就不需要指定 PO 的属性名、类型等信息,如果关系表字段和 PO 属性名、类型都一致,您甚至无需编写任务属性映射信息——因为这些信息都可以通过 Java 反射机制获取。注释和 Java 代码位于一个文件中,而 XML 配置转载 2017-02-12 11:27:47 · 543 阅读 · 0 评论 -
SpringMVC实战教程 | 第七篇:SpringMVC转换器和格式化
ConverterSpring的Converter可以将一种类型转换另一种类型的对象,例如:如果希望Spring在将输入的日期字符串绑定到Date时,使用不同的日期样式,需要使用Converter来将字符串转换日期 创建Converter需要实现Converter< String,Date >接口StringToDateConverter负责将字符串转换日期p...原创 2017-06-16 13:03:00 · 923 阅读 · 0 评论 -
SpringMVC实战教程 | 第六篇:SpringMVC表单处理(重定向)
1、应用@Autowired和@Service进行依赖注入将依赖注入到SpringMVC控制器的最简单的方法就是通过注解@Autowired到字段或方法。还有类的依赖注入要注明@Service,指示该类是一个服务,并在配置文件中添加扫描依赖基本包 <context:component-scan base-package="service"></context:comp...原创 2017-06-15 18:36:57 · 748 阅读 · 0 评论 -
SpringMVC实战教程 | 第五篇:SpringMVC表单处理(注解和非注解)
1、目录结构2、部署描述符文件和SpringMVC配置文件web.xml<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/j...原创 2017-06-15 11:14:40 · 978 阅读 · 0 评论 -
SpringMVC实战教程 | 第三篇:SpringMVC处理器映射
介绍先大致了解SpringMVC的核心开发步骤:① 在web.xml中部署DispaterServlet,并配置springmvc.xml等文件; ② 将映射文件请求到处理器HandlerMapping; ③ HandlerMapping会把请求映射为HandlerExecutionChain类型的handler对象; ④ 将handler对象作为参数传递给HandlerAda...原创 2017-02-12 11:18:28 · 912 阅读 · 0 评论 -
SpringMVC实战教程 | 第二篇:SpringMVC之在DispatcherServlet中指定处理异常的页面
springMVC提供的异常处理主要有两种方式,一种是直接实现自己的HandlerExceptionResolver,另一种是使用注解的方式实现一个专门用于处理异常的Controller——ExceptionHandler。 下面是使用第一种,使用HandlerExceptionResolver接口的实现类SimpleMappingExceptionResolver,通过DispatcherSe...原创 2017-02-10 17:37:06 · 1099 阅读 · 0 评论 -
SpringMVC实战教程 | 第一篇:一个在JSP页面输出“HelloWorld”的Spring MVC实例
配置web.xml作用:装载DispatcherServlet类,读取Spring配置文件,设置一些初始化参数,加入标记库,设置比如 * .do 、* .form的映射等。<servlet> <servlet-name>dispatcherServlet</servlet-name> <servlet-class...原创 2017-02-08 22:34:49 · 3183 阅读 · 0 评论 -
SpringMVC实战教程 | 第四篇:SpringMVC上传文件
介绍Spring提供两种方法来处理文件上传,分别是Commons FileUpload多部分请求流程和使用Servlet3.1多部分请求流程两种配置(一)使用Commons FileUpload解析器这个需要添加依赖到项目中<dependency> <groupId>commons-fileupload</groupId&g...原创 2017-02-16 12:31:06 · 608 阅读 · 0 评论 -
Solr定时全量更新索引(不使用solr配置方式)
百度了网上solr全量更新,基本都是使用solr配置方式,博客都写的差不多。。。而且特别麻烦,要这个jar包那个jar包。想到定时,其实使用Spring与Quartz的整合实现定时任务调度,定时去调用方法,然后在方法里实现solr的全量更新索引就行,实现起来简单,代码如下:/** * Created by jyx on 2018/2/7. */@Componentpublic c...原创 2018-02-08 15:47:38 · 2872 阅读 · 3 评论 -
Spring源码深度解析(一)---事务管理
介绍先大概说一下Spring事务实现原理:我们知道事务的ACID属性和其涉及到数据一致性,Spring这边是通过AOP的方式将事务处理和业务代码分离出来。其中通过TransactionInterceptor来实现对代理方法的拦截,将事务处理的功能编织起来。由于底层不同的数据库导致不同的事务支持,Spring也对数据源做了适配。TransactionProxyFactoryBean源码分...原创 2018-07-28 13:51:53 · 2298 阅读 · 1 评论 -
spring的自定义配置
完成一个spring的自定义配置一般需要以下5个步骤:设计配置属性和JavaBean编写XSD文件 全称就是 XML Schema 它就是校验XML,定义了一些列的语法来规范XML编写NamespaceHandler和BeanDefinitionParser完成解析工作编写spring.handlers和spring.schemas串联起所有部件在Bean文件中应用整体目录:...原创 2018-09-15 11:06:08 · 1401 阅读 · 1 评论 -
基于SpringBoot+Mybatis+Thymeleaf商品信息管理系统
基于SpringBoot+Mybatis+Thymeleaf商品信息管理系统主要用到的技术: - 1、使用maven进行项目构建 - 2、使用Springboot+Mybatis搭建整个系统 - 3、使用Thymeleaf模板技术实现页面静态化 - 4、使用框架Bootstrap、JQuery开发前端界面 - 5、使用MySQL和MongoDB分别存储数据和图片主要分为四个模...原创 2018-04-30 11:29:30 · 22718 阅读 · 60 评论 -
SpringBoot之集成Spring AOP
在开始之前,我们先把需要的jar包添加到工程里。新增Maven依赖如下: &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.springframework.boot&amp;lt;/groupId&amp;gt; &amp;lt;artif转载 2018-07-27 17:33:52 · 342 阅读 · 1 评论 -
Spring Cloud Config分布式配置中心的使用和遇到的坑
1、springboot: Finchley.RC2 Cannot load environment] with root causejava.lang.StringIndexOutOfBoundsException: String index out of range: -1 at java.lang.String.substring(String.java:1967) ~[na:1...原创 2018-07-15 21:27:00 · 3264 阅读 · 1 评论 -
spring项目启动完成后,自动执行一次指定方法
背景因为需要保证所有调度相关的依赖注入spring容器才创建所以定时调度任务,所以需要实现在Spring容器将所有的Bean都初始化完成之后才自动执行一次执行方法(创建一个调度任务)实现实现ApplicationListener接口,并实现 onApplicationEvent(ContextRefreshedEvent contextRefreshedEvent)方法@Ser...原创 2018-05-22 16:38:25 · 19079 阅读 · 11 评论 -
SpringBoot配置发送Email
1、在 pom.xml 文件中引入邮件配置:&lt;dependency&gt; &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt; &lt;artifactId&gt;spring-boot-starter-mail&lt;/artifactId&gt;&am原创 2018-03-16 11:23:10 · 1616 阅读 · 0 评论 -
Spring源码深度解析(二)---循环依赖问题
什么是循环依赖循环依赖就是循环引用,就是老公或者多个bean相互之间的持有对象,比如A依赖B,B依赖C,C依赖A,则它们最终形成一个环。实例化bean的过程需要对循环依赖的解决。Spring如何解决循环依赖Spring容器循环依赖包括构造器循环依赖和setter循环依赖1、构造器循环依赖表示通过构造器注入构成的循环依赖是无法解决的,只能抛异常BeanCurrentlyInCreatio...原创 2019-05-03 22:43:33 · 972 阅读 · 0 评论 -
SpringMVC实战教程 | 第八篇:SpringMVC下载文件
为了将像文件这样的资源发送到浏览器,需要在控制器中完成以下工作: (1)对请求处理方法使用void返回类型,并在方法中添加HttpServletResponse参数。 (2)将响应的内容类型设为文件的内容类型。Content-Type标题在某个实体的body中定义数据的类型,并包含媒体类型和子类型标识符。 (3)添加一个名为Content-Disposition的HTTP响应标题,并赋...原创 2017-06-16 16:08:58 · 786 阅读 · 0 评论 -
Spring实战教程 | 第九篇:SpringAOP之入门
AOP的3个关键概念切入点(Pointcut)在介绍Pointcut之前先介绍Join Point(连接点)的概念。Join Point指程序运行中的某个阶段点,比如一个方法调用,异常抛出等。Pointcut就是Join Point的集合,它是程序中需要注入Advice的位置的集合,指明Advice在什么样的条件下才能被触发。 Pointcut.java源码 接口ClassFi...原创 2017-02-03 09:12:02 · 1513 阅读 · 0 评论 -
Spring实战教程 | 第一篇: Spring中的Bean配置
配置形式:①基于 XML 文件的方式;②基于注解的方式 Bean 的配置方式:①通过全类名(反射)、②通过工厂方法(静态工厂方法 & 实例工厂方法)、③FactoryBeanIOC 和 DI*IOC(Inversion of Control):其思想是反转资源获取的方向. 传统的资源查找方式要求组件向容器发起请求查找资源. 作为回应, 容器适时的返回资源. 而应用了 IOC ...原创 2017-01-24 23:48:59 · 866 阅读 · 0 评论 -
Spring实战教程 | 第二篇:Spring属性配置细节
1、字面值1、字面值:可用字符串表示的值,可以通过 元素标签或 value 属性进行注入。 2、基本数据类型及其封装类、String 等类型都可以采取字面值注入的方式 3、若字面值中包含特殊字符,可以使用<![CDATA[ ] ]>把字面值包裹起来。代码示例 <!-- 如果字面值包含特殊字符可以使用<![CDATA[]]>包裹起来 -->...原创 2017-01-25 02:49:38 · 705 阅读 · 0 评论 -
Spring实战教程 | 第三篇:Spring使用外部属性文件
当我们要配置数据源的信息时候,如果配置在Bean里面会很麻烦,所以需要个外部属性文件,外部属性文件主要配置系统部署的细节信息(比如文件路劲,数据源配置信息等) 外部属性文件db.propertiesuser=sapassword=12345678driverClass=com.microsoft.sqlserver.jdbc.SQLServerDriverjdbcUrl=jdbc:...原创 2017-01-27 10:05:58 · 625 阅读 · 0 评论 -
Spring实战教程 | 第四篇:Spring表达式语言:SpEL
1、SpEL简介Spring表达式语言(简称SpEL):是一个支持运行时查询和操作对象图的强大的表达式语言。SpELEL可以给bean的属性动态赋值。 SpEl可以实现的功能: ①通过bean的id对bean进行引用 ②调用方法以及引用对象中的属性 ③计算表达式的值 ④正则表达式的匹配2、 字面值<!-- 字面量的表示 1、科学计数法 2、小数 3、整数--...原创 2017-01-28 21:24:00 · 688 阅读 · 0 评论 -
@Autowired与@Resource的区别
@Autowired与@Resource的区别@Autowired:默认按类型装配(这个注解是属于spring的),默认情况下必须要求依赖对象必须存在,如果要允许null 值, 可以设置它的required属性为false,如:@Autowired(required=false) ,如果我们想使用名称装配可以结合@Qualifier注解进行使用,如下:@Autowired() @Qualifier(原创 2017-02-23 16:34:12 · 895 阅读 · 0 评论 -
25个经典的Spring面试问答
<p>本人收集了一些在大家在面试时被经常问及的关于Spring的主要问题,这些问题有可能在你下次面试时就会被问到。对于本文中未提及的Spring其他模块,我会单独分享面试的问题和答案。1、什么是Spring框架?Spring框架有哪些主要模块?Spring框架是一个为Java应用程序的开发提供了综合、广泛的基础性支持的Java平台。Spring帮助开发者解决了开发中基础性的问题,使得开发人员可以专转载 2017-01-24 12:47:38 · 622 阅读 · 0 评论 -
Spring实战教程 | 第五篇:Spring自动装配及bean的生命周期
Spring自动装配介绍1、Spring IOC 容器可以自动装配 Bean. 需要做的仅仅是在 的 autowire 属性里指定自动装配的模式 2、byType(根据类型自动装配): 若 IOC 容器中有多个与目标 Bean 类型一致的 Bean. 在这种情况下, Spring 将无法判定哪个 Bean 最合适该属性, 所以不能执行自动装配. 3、byName(根据名称自动装配...原创 2017-02-01 22:34:42 · 939 阅读 · 0 评论 -
Spring实战教程 | 第六篇:Spring通过工厂方法配置Bean
通过静态工厂方法配置Bean1、调用静态工厂方法创建Bean是将对象创建的过程封装到静态方法中,当客户端需要对象时,只需要简单地调用静态方法,而不用关心创建对象的细节 2、要声明通过静态方法创建的Bean,需要在Bean的class属性里指定拥有该工厂的方法的类,同时在factory-method属性里指定工厂方法的名称。最后使用< constrctor-arg>元素为该方法传递...原创 2017-02-01 23:56:46 · 5205 阅读 · 0 评论 -
Spring源码如何导入到eclipse
这哥们写的不错,基本上把能出的情况 都出了!http://wind-bell27.iteye.com/blog/1969930http://www.cnblogs.com/xleequ/archive/2013/01/16/2863332.html官方说明:https://github.com/spring-projects/spring-framework先讲基本步骤,如下:去GitHub中转载 2017-02-02 17:06:52 · 2209 阅读 · 0 评论 -
Spring实战教程 | 第八篇:Spring缓存---创建第一个缓存应用程序
介绍缓存是一种存储机制,它将数据保存在某个地方,并以一种更快的方式为日后的请求提供服务,在应用程序中使用缓存机制,可以避免方法的多次执行,可以根据所提供的输入值对方法的结果数据进行缓存 通过使用AOP原则,对方法进行编织,如果已经为提供的参数执行过,那么不必执行实际方法就可以返回被缓存的结果,所以需要为应用程序的所有类生成代理类,并使用缓存注解对类的方法进行标记创建第一个缓存应用程序...原创 2017-02-15 18:52:40 · 773 阅读 · 0 评论 -
Spring 中的TransactionTemplate
Spring提供的TransactionTemplate 能够以编程的方式实现事务控制,是无状态而且线程安全的public class TransactionTemplate extends DefaultTransactionDefinition implements TransactionOperations, InitializingBean { protected fi原创 2017-02-05 23:43:28 · 6090 阅读 · 0 评论 -
Spring的声明式事务处理
Spring的事务处理需要借助AOP的实现,所以需要apalliance.jar和cglib.jar,实现声明式事务处理,需要PlatformTransactionManager的实现类,因为使用的是JDBC,所以实现类是DataSourceTransactionManager类,并且使用Spring提供的TransactionProxyFactoryBean类实现事务代理。 代码示例 (1)创原创 2017-02-06 21:50:09 · 881 阅读 · 0 评论 -
Spring实战教程 | 第七篇:Spring事务处理概述
()事务是一系列操作组成的工作单元,该工作单元内的操作是不可分割的,即要么所有操作都做,要么所有操作都不做 Spring框架支持事务管理的核心是事务管理器抽象,对于不同的数据访问框架(如Hibernate)通过实现策略接口 PlatformTransactionManager,从而能支持各种数据访问框架的事务管理Spring事务的中心接口PlatformtransactionManager ...原创 2017-02-05 22:02:52 · 944 阅读 · 0 评论 -
Spring实战教程 | 第十三篇:Spring高级功能
1、Spring AwareSpring Aware目的是为了让Bean获得Spring容器的服务,因为ApplicationContext接口集成了MessageSOurce接口、ApplicationEventPublisher接口和ResourceLoader接口,所以Bean继承ApplicationContextAware就可以获得spring容器的所有服务 AwareSe...原创 2017-07-23 14:27:56 · 2780 阅读 · 0 评论 -
Spring实战教程 | 第十二篇:用Spring AOP实现异常处理和记录程序执行时间
这个实例用于一个系统的所以方法执行过程中出现异常时,把异常信息都记录下来,还有记录每个方法的执行时间,这两个业务逻辑首先使用SpringAOP的自动代理功能,然后一个用Java的动态代理,一个用CGLIB代理用Spring AOP的自动代理实现(1)定义负责异常处理的Advice为ExceptionHandler.java ,负责当程序执行过程中出现异常,把异常信息记录下来pu...原创 2017-02-05 15:19:00 · 3922 阅读 · 0 评论 -
Spring实战教程 | 第十一篇:SrpringAOP之Spring中的自动代理
自动代理的好处:自动检查IoC容器的目标对象,并对这些目标对象产生代理对象,也就是我们不用为每个Action建立相应的代理bean 下面的例子是所有类都以do开头的方法,在被调用时,都要进行日志的输出 实现思路: ① 在接口TimeBookInterface中添加方法doAuditing()和doCheck(),实现类TimeBook实现该接口 ② 使用Before、After通知 ...原创 2017-02-05 11:18:12 · 795 阅读 · 0 评论 -
Spring源码深度解析(三)---创建AOP代理
前言我们都知道要使用AOP需要自定义配置完成对AnnotationAwareAspectJAutoProxyCreator类型的自动注册。当Spring加载这个bean时会在实例化前调用其postProcessAfterInitialization方法,对于AOP逻辑的分析由此开始。创建代理流程在父类AbstractAutoProxyCreator的postProcessAfterIniti...原创 2019-05-04 18:49:21 · 474 阅读 · 0 评论