- 博客(61)
- 收藏
- 关注
转载 Spring事务传播
事务特性事务有四大特性,分别如下:1. 原子性(Atomicity):事务是数据库逻辑工作单元,事务中包含的操作要么都执行成功,要么都执行失败。2. 一致性(Consistency):事务执行的结果必须是使数据库数据从一个一致性状态变到另外一种一致性状态。当事务执行成功后就说数据库处于一致性状态。如果在执行过程中发生错误,这些未完成事务对数据库所做的修改有一部分已写入物理数据...
2018-10-21 18:13:00 183
转载 Java中的异常
Java标准异常Throwable这个类是Java中用老表示任何可以作为异常被抛出的基类,因而Java异常都是对象,是Throwable子类的实例,描述了出现在一段编码中的 错误条件。当条件生成时,错误将引发异常。Java异常类层次结构图: ...
2018-10-18 14:38:00 164
转载 Spring源码解析 – @Configuration配置类及注解Bean的解析
在分析Spring 容器创建过程时,我们知道容器默认会加载一些后置处理器PostPRocessor,以AnnotationConfigApplicationContext为例,在构造函数中初始化reader时,加载默认后置处理器。其中ConfigurationClassPostProcessor这个后置处理器专门处理带有@Configuration注解的类,Configuratio...
2018-09-18 10:31:00 264
转载 Spring源码解析 – AnnotationConfigApplicationContext容器创建过程
Spring在BeanFactory基础上提供了一些列具体容器的实现,其中AnnotationConfigApplicationContext是一个用来管理注解bean的容器,从AnnotationConfigApplicationContext的实现结构图中可以看出:AnnotationConfigApplicationContext继承GenericApplicationCo...
2018-09-17 14:51:00 191
转载 使用Logstash同步数据至Elasticsearch,Spring Boot中集成Elasticsearch实现搜索
安装logstash、同步数据至ElasticSearch为什么使用logstash来同步,CSDN上有一篇文章简要的分析了以下几种同步工具的优缺点:https://blog.csdn.net/laoyang360/article/details/51694519。下面开始实践: 1. 下载Logstash 安装包,需要注意版本与elasticsearch保持一致,wind...
2018-09-09 08:14:00 224
转载 搜索引擎Elasticsearch REST API学习
Elasticsearch为开发者提供了一套基于Http协议的Restful接口,只需要构造rest请求并解析请求返回的json即可实现访问Elasticsearch服务器。Elasticsearch的API接口功能丰富,包含集群、监控、部署管理等,也包含常用的文档、索引操作,本文主要是使用Postman工具对文档操作相关的api做学习记录。新增文档PUT方式:http:/...
2018-09-07 20:15:00 525
转载 搜索引擎Elasticsearch,了解一下?
ElasticSearch介绍ElasticSearch是一个全文搜索服务器,也可以作为NoSql数据库,存储任意格式的文档和数据,同时可以做大数据的分析。ElasticSearch具有以下特点: 1. 全文搜索引擎,ES是简历在Lucebe上的开元索索引擎,可以用来进行全文搜索、地理信息搜索 2. 文档存储和查询,可以向NoSql那样存储任意格式的文档,并能根据条件查询...
2018-09-06 16:32:00 203
转载 Spring Boot(八)集成Spring Cache 和 Redis
在Spring Boot中添加spring-boot-starter-data-redis依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-star...
2018-09-05 23:41:00 109
转载 Spring – 缓存注解
Spring缓存抽象概述Spring框架自身并没有实现缓存解决方案,但是从3.1开始定义了org.springframework.cache.Cache和org.springframework.cache.CacheManager接口,提供对缓存功能的声明,能够与多种流行的缓存实现集成。Cache接口为缓存的组件规范定义,包含缓存的各种操作集合;Cache接口下Spring提...
2018-09-05 13:35:00 433
转载 JDK源码分析 – HashMap
HashMap类的申明HashMap的定义如下:1 public class HashMap<K,V> extends AbstractMap<K,V>2 implements Map<K,V>, Cloneable, Serializable {}HashMap是一个散列表,用于存储key-value形式的键值对。...
2018-09-03 03:04:00 71
转载 JDK源码分析 – LinkedList
LinkedList类的申明1 public class LinkedList<E>2 extends AbstractSequentialList<E>3 implements List<E>, Deque<E>, Cloneable, java.io.Serializable4 {5 }L...
2018-09-02 15:15:00 94
转载 JDK源码分析 – ArrayList
ArrayList类的申明ArrayList是一个支持泛型的,底层通过数组实现的一个可以存任意类型的数据结构,源码中的定义如下:1 public class ArrayList<E> extends AbstractList<E>2 implements List<E>, RandomAccess, Cloneable,...
2018-09-02 12:11:00 92
转载 Spring Boot(七)扩展分析
前面的章节在分析SpringBoot启动过程中,我们发现SpringBoot使用Spring框架提供的SpringFactoriesLoader这个类,实现检索META-INF/spring.factories配置文件,并从配置文件中获取指定配置项(通常是特定的接口实现类),并实例化后加载到Spring容器,这个机制为SpringBoot提供了方便的扩展工能。下面列举几个扩...
2018-08-31 19:45:00 123
转载 Spring Boot(六)自定义事件及监听
事件及监听并不是SpringBoot的新功能,Spring框架早已提供了完善的事件监听机制,在Spring框架中实现事件监听的流程如下:自定义事件,继承org.springframework.context.ApplicationEvent抽象类定义事件监听器,实现org.springframework.context.ApplicationListener接口...
2018-08-31 16:34:00 188
转载 Spring Boot(五)启动流程分析
学习过springboot的都知道,在Springboot的main入口函数中调用SpringApplication.run(DemoApplication.class,args)函数便可以启用SpringBoot应用程序,跟踪一下SpringApplication源码可以发现,最终还是调用了SpringApplication的动态run函数。下面以SpringBoot2.0.3.R...
2018-08-31 02:29:00 108
转载 Spring Boot(四)@EnableXXX注解分析
在学习使用springboot过程中,我们经常碰到以@Enable开头的注解,其实早在Spring3中就已经出现了类似注解,比如@EnableTransactionManagement、@ EnableWebMvc等,本文以@ EnableAutoConfiguration注解为例跟踪一下源码,分析实现过程。@EnableAutoConfiguration注解@EnableAut...
2018-08-30 18:59:00 207
转载 Spring Boot(三)自动装配
@Configuration和@BeanSpring提供了注解@Configuration和@Bean注解用来配置多个Bean,在以前的Spring项目中可以通过xml的方式配置:<beans> <bean id=”xxxBean” class="aaa.bbb.xxxBean"></bean></beans>...
2018-08-05 12:46:00 121
转载 Spring Boot(三)集成REST和Swagger
temp转载于:https://www.cnblogs.com/ashleyboy/p/9398978.html
2018-07-31 23:50:00 89
转载 Spring Boot(二)配置分析
回顾一下采用SSM开发项目时,项目中会存在多个配置文件,比如web.xml,配置Spring相关的applicationContext-springmvc.xml, applicationContext-dao.xml等,对于应用自身的配置,甚至还需要编写专门的代码去读取这些配置文件中的参数。在Spring Boot中,简化了Spring相关配置的管理和读取,只需要一个applica...
2018-07-29 23:11:00 104
转载 Spring Boot(一)入门篇
SpringBoot概述Spring Boot的诞生简化了Spring应用开发,SpringBoot提供对Spring容器、第三方插件等很多服务的管理。对于大部分Spring应用,无论是简单的web系统还是构建复杂的系统,使用SpringBoot只需要少量的配置就可以完成。与SSM、SSH等相比,SpringBoot具有以下优点:实现约定大于配置,是一个低配置的应用系统,...
2018-07-29 23:07:00 67
转载 Mybatis学习系列(七)缓存机制
Mybatis缓存介绍MyBatis提供一级缓存和二级缓存机制。一级缓存是Sqlsession级别的缓存,Sqlsession类的实例对象中有一个hashmap用于缓存数据。不同的Sqlsession实例缓存的hashmap数据区域互不影响。Mybatis默认启用一级缓存,在同一个sqlsession中多次执行相同的sql语句,第一次执行后会将数据缓存起来,后面的查询将会从缓存中...
2018-07-12 23:47:00 231
转载 Mybatis学习系列(六)延迟加载
延迟加载其实就是将数据加载时机推迟,比如推迟嵌套查询的执行时机。在Mybatis中经常用到关联查询,但是并不是任何时候都需要立即返回关联查询结果。比如查询订单信息,并不一定需要及时返回订单对应的产品信息,查询商品分类信息并不一定要及时返回该类别下有哪些产品,这种情况一下需要一种机制,当需要查看时,再执行查询,返回需要的结果集,这种需求在Mybatis中可以使用延迟加载机制来实现。延迟加载...
2018-07-10 01:32:00 132
转载 Mybatis学习系列(五)关联查询
前面几节的示例基本都是一些单表查询,实际项目中,经常用到关联表的查询,比如一对一,一对多等情况。在Java实体对象中,一对一和一对多可是使用包装对象解决,属性使用List或者Set来实现,在mybatis中一对一和一对多可是使用association或者collection标签来配合实现。在MyBatis中有两种方式实现关联查询:1. 嵌套结果:使用嵌套结果映射来处理重复的联合结...
2018-07-09 22:11:00 172
转载 Mybatis学习系列(四)Mapper接口动态代理
实现原理及规范Mapper接口动态代理的方式需要手动编写Mapper接口,Mybatis框架将根据接口定义创建接口的动态代理对象,代理对象的方法体实现Mapper接口中定义的方法。使用Mapper接口需要遵守以下规范:1. Mapper.xml文件中的namespace与mapper接口的类路径相同2. Mapper接口方法名和Mapper.xml中定义的每个stat...
2018-07-07 13:26:00 177
转载 Mybatis学习系列(三)动态SQL
在mapper配置文件中,有时需要根据查询条件选择不同的SQL语句,或者将一些使用频率高的SQL语句单独配置,在需要使用的地方引用。Mybatis的一个特性:动态SQL,来解决这个问题。mybatis动态sql语句是基于OGNL表达式的,主要有以下几类:1. if 语句 (简单的条件判断)2. choose (when,otherwize) ,相当于java 语言中的 s...
2018-07-06 01:39:00 87
转载 Mybatis学习系列(二)Mapper映射文件
Mapper映射文件,作用是用来配置SQL映射语句,根据不同的SQL语句性质,使用不同的标签,mapper文件中常用的标签有<iselect>、<insert>、<update>、<delete>常见增删改查示例<!-- namespace:此处使用包名+文件名 的形式 --><mapper namesp...
2018-07-05 00:16:00 195
转载 Mybatis学习系列(一)入门简介
MyBatis简介Mybatis是Apache的一个Java开源项目,是一个支持动态Sql语句的持久层框架。Mybatis可以将Sql语句配置在XML文件中,避免将Sql语句硬编码在Java类中。与JDBC相比:Mybatis通过参数映射方式,可以将参数灵活的配置在SQL语句中的配置文件中,避免在Java类中配置参数(JDBC)Mybatis通过输出映射机制,将结果集的检...
2018-07-02 18:27:00 180
转载 Spring MVC温故而知新 – 参数绑定、转发与重定向、异常处理、拦截器
请求参数绑定当用户发送请求时,根据Spring MVC的请求处理流程,前端控制器会请求处理器映射器返回一个处理器,然后请求处理器适配器之心相应的处理器,此时处理器映射器会调用Spring Mvc 提供的参数绑定组件将请求的key/value 数据绑定到Controller处理器方法对应的形参上。Spring MVC使用Converter转换器可以进行各种类型的转换,也可自定义Conv...
2018-06-10 22:20:00 145
转载 Spring MVC温故而知新 – 请求映射RequestMapping
RequestMapping注解说明@RequestMapping注解的作用将Web请求映射到特定处理程序类和/或处理程序方法,这个注解可以用于类或者方法上,并通过属性value指定请求路径。用在Controller类上表示提供初步的URL请求映射信息,相对于Web应用的根目录,这是一个前置请求路径。用在Controller中方法上,表示提供详细的URL映射。如果Controller...
2018-05-22 01:32:00 170
转载 JDK源码分析 – String、StringBuilder、StringBuffer
String类的申明public final class String implements java.io.Serializable, Comparable<String>, CharSequence {…}String类用了final修饰符,表示它不可以被继承,同时还实现了三个接口, 实现Serializable接口表示String类可被序列化;...
2018-05-20 12:56:00 95
转载 Spring MVC温故而知新 – 从零开始
Spring MVC简介Spring MVC是一款基于MVC架构模式的轻量级Web框架,目的是将Web开发模块化,对整体架构进行解耦。Spring MVC有一下优点:作为Spring框架的一部分,拥有Spring的优点(IOC,AOP等)支持灵活的URL到页面控制器的映射提供灵活的数据验证、格式化、数据绑定机制支持RESTful风格Spring MVC请求流程...
2018-05-17 23:56:00 150
转载 JDK源码分析 – Integer
Integer类的申明public final class Integer extends Number implements Comparable<Integer> { … }Integer用于对int类型数值的封装,并提供一些int类型数据操作的方法,Integer继承自Number类,Number是JDK的一个代表数值的超类,提供一些用于不同数值之间类型...
2018-05-15 23:19:00 70
转载 Spring温故而知新 – Spring AOP
AOP的相关专业术语通知(Advice):定义在连接点做什么 Spring中通知类型:前置通知,后置通知,返回通知,异常通知,环绕通知连接点(JoinPoint):程序执行过程中拦截的点,Sping中一般是方法切点(PointCut): 决定advice通知应该作用域哪个连接点切面(Aspect):切面就是对横切关注点的抽象引入(Introd...
2018-05-13 21:19:00 82
转载 Spring温故而知新 – AOP代理
AOP的概念AOP:Aspect-Oriented Programming(面向切面编程),维基百科的解释如下:Aspect是一种新的模块化机制,用来描述分散在对象、类或者函数中的横切关注点,从关注点中分离出横切关注点是面向切面的程序设计的核心概念。分离关注点使解决特定领域问题的代码从业务逻辑中独立出来,业务逻辑的代码中不在含有针对特定领域问题的代码的调用,业务逻辑同特定领域问题的关...
2018-05-11 23:50:00 135
转载 Spring温故而知新 – bean的装配(续)
按条件装配bean就是当满足特定的条件时Spring容器才创建Bean,Spring中通过@Conditional注解来实现条件化配置beanpackage com.sl.ioc;import org.springframework.context.annotation.Bean;import org.springframework.context.annotatio...
2018-05-06 23:57:00 132
转载 Spring温故而知新 – bean的装配
Spring装配机制Spring提供了三种主要的装配机制: 1:通过XML进行显示配置 2:通过Java代码显示配置 3:自动化装配自动化装配Spring中IOC容器分两个步骤来完成自动化装配: 组件扫描:Spring会自动发现应用上下文中所创建的 bean(通过定义资源的方式,让 Spring IoC 容器扫描对应的包,从而把 bean 装配进来)...
2018-05-04 01:02:00 88
转载 Lambda表达式和表达式树
lambda表达式是C#3.0中引入的比匿名方法更加简洁的一种语法,可用于创建委托或表达式树类型的匿名函数。Lambda表达式本身可划分为两种类型:语句Lambda和表达式Lambda。表达式Lambda: 要创建lambda表达式,则在lambda运算符 => 的左侧指定输入的参数(如果存在参数),Lambda表达式返回表达式的结果,基本形式如下:...
2015-09-26 11:08:00 113
转载 委托的内部机制
委托是一种定义方法签名的类型,是对方法的抽象、封装。与委托的签名(由返回类型和参数组成)匹配的任何可访问类和结构中的任何方法都可以分配给该委托,方法可以是静态方法,也可以是实例方法。将一个方法绑定到委托时,C#和CLR允许引用类型的协变性和逆变性。协变性是指方法的返回类型可以派生自委托的返回类型。逆变性是指委托的参数类型可以派生自方法的参数类型。协变性和逆变性只能用...
2015-09-22 00:22:00 109
转载 委托(C#)
委托其实之前早有接触过,但是没有系统的学习过,在工作中也没有主动尝试使用委托。C和C++可以利用函数指针,将可执行的步骤(函数)做为参数传递传递给另一个方法。C#中可以使用委托提供同样的功能。举一个简单的例子,生成订单时通知用户,可能是邮件通知,也可能是短信通知,也可能是其他形式的通知。下面给出一个基本的实现: 1 //通知枚举 2 ...
2015-09-21 00:56:00 103
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人