<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[a632372394的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/a632372394</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; a632372394]]></copyright><item><title><![CDATA[Spring MVC表单防重复提交]]></title><link>https://blog.youkuaiyun.com/a632372394/article/details/101932590</link><guid>https://blog.youkuaiyun.com/a632372394/article/details/101932590</guid><author>a632372394</author><pubDate>Tue, 05 Jun 2018 15:16:00 +0800</pubDate><description><![CDATA[利用Spring MVC的过滤器及token传递验证来实现表单防重复提交。
创建注解


@Target(ElementType.METHOD)


@Retention(RetentionPolicy.RUNTIME)


@Documented


public @interface Token {





  boolean creat...]]></description><category></category></item><item><title><![CDATA[@Controller,@Service,@Repository,@Component详解]]></title><link>https://blog.youkuaiyun.com/a632372394/article/details/101932597</link><guid>https://blog.youkuaiyun.com/a632372394/article/details/101932597</guid><author>a632372394</author><pubDate>Tue, 05 Jun 2018 15:07:00 +0800</pubDate><description><![CDATA[@Controller

用来表示一个web控制层bean，如SpringMvc中的控制器。

@Service

用来表示一个业务层bean。

@Repository

用来表示一个持久层bean，即数据访问层DAO组件。

@Component

用来表示一个平常的普通组件，当一个类不合适用以上的注解定义时用这个组件修饰。

...]]></description><category></category></item><item><title><![CDATA[Spring Enable*高级应用及原理]]></title><link>https://blog.youkuaiyun.com/a632372394/article/details/101932588</link><guid>https://blog.youkuaiyun.com/a632372394/article/details/101932588</guid><author>a632372394</author><pubDate>Tue, 05 Jun 2018 14:59:00 +0800</pubDate><description><![CDATA[Enable*
之前的文章用到了一些Enable*开头的注解，比如EnableAsync、EnableScheduling、EnableAspectJAutoProxy、EnableCaching等，Enable表示开启/允许一项功能。
Enable*工作原理
我们只需要几个很简单的注解就能开启一个复杂的功能，这是多么简易的用法，这是怎么办到的？
首先来看看计划任务@Enable...]]></description><category></category></item><item><title><![CDATA[Spring Aware容器感知技术]]></title><link>https://blog.youkuaiyun.com/a632372394/article/details/101932595</link><guid>https://blog.youkuaiyun.com/a632372394/article/details/101932595</guid><author>a632372394</author><pubDate>Fri, 01 Jun 2018 16:09:00 +0800</pubDate><description><![CDATA[Spring Aware是什么
Spring提供Aware接口能让Bean感知Spring容器的存在，即让Bean可以使用Spring容器所提供的资源。
Spring Aware的分类
几种常用的Aware接口如下。


Aware接口说明



ApplicationContextAware
能获取Application Context调用容器的服务


A...]]></description><category></category></item><item><title><![CDATA[Spring开启方法异步执行]]></title><link>https://blog.youkuaiyun.com/a632372394/article/details/101932593</link><guid>https://blog.youkuaiyun.com/a632372394/article/details/101932593</guid><author>a632372394</author><pubDate>Fri, 01 Jun 2018 15:32:00 +0800</pubDate><description><![CDATA[@EnableAsync


@Target(ElementType.TYPE)


@Retention(RetentionPolicy.RUNTIME)


@Documented


@Import(AsyncConfigurationSelector.class)


public @interface EnableAsync {



...]]></description><category></category></item><item><title><![CDATA[Spring AOP注解为什么失效？90%Java程序员不知道]]></title><link>https://blog.youkuaiyun.com/a632372394/article/details/101932591</link><guid>https://blog.youkuaiyun.com/a632372394/article/details/101932591</guid><author>a632372394</author><pubDate>Fri, 01 Jun 2018 15:29:00 +0800</pubDate><description><![CDATA[使用Spring Aop注解的时候，如@Transactional, @Cacheable等注解一般需要在类方法第一个入口的地方加，不然不会生效。

如下面几种场景

1、Controller直接调用Service B方法：Controller &gt; Service A

在Service A 上加@Transactional的时候可以正常实现AOP功能。
...]]></description><category></category></item><item><title><![CDATA[@Resource,@Autowired,@Inject3种注入方式]]></title><link>https://blog.youkuaiyun.com/a632372394/article/details/101932589</link><guid>https://blog.youkuaiyun.com/a632372394/article/details/101932589</guid><author>a632372394</author><pubDate>Fri, 01 Jun 2018 10:41:00 +0800</pubDate><description><![CDATA[概况


@Resource,@Autowired,@Inject 这3种都是用来注入bean的，它们属于不同的程序中。



ANNOTATIONPACKAGESOURCE

@Resource
javax.annotation
Java JSR-250


@Inject
javax.inject
Java JSR-330


@Auto...]]></description><category></category></item><item><title><![CDATA[Spring bean的完整生命周期]]></title><link>https://blog.youkuaiyun.com/a632372394/article/details/101932586</link><guid>https://blog.youkuaiyun.com/a632372394/article/details/101932586</guid><author>a632372394</author><pubDate>Fri, 01 Jun 2018 10:39:00 +0800</pubDate><description><![CDATA[1.实例化BeanFactoryPostProcessor 的实现类；
2.执行BeanFactoryPostProcessor 的postProcesserBeanFactory方法；
3.实例化BeanPostProcessor实现类；
4.实例化InstantiationAwareBeanpostProcessorAdapter实现类；
5.执行InstantiationA...]]></description><category></category></item><item><title><![CDATA[可见性、原子性、有序性]]></title><link>https://blog.youkuaiyun.com/a632372394/article/details/101932555</link><guid>https://blog.youkuaiyun.com/a632372394/article/details/101932555</guid><author>a632372394</author><pubDate>Mon, 28 May 2018 19:52:00 +0800</pubDate><description><![CDATA[一、基本概念

先补充一下概念：Java 内存模型中的可见性、原子性和有序性。
可见性：
　　可见性是一种复杂的属性，因为可见性中的错误总是会违背我们的直觉。通常，我们无法确保执行读操作的线程能适时地看到其他线程写入的值，有时甚至是根本不可能的事情。为了确保多个线程之间对内存写入操作的可见性，必须使用同步机制。
　　可见性，是指线程之间的可见性，一个线程修改的状态对另一个线程是...]]></description><category></category></item><item><title><![CDATA[实现分布式锁]]></title><link>https://blog.youkuaiyun.com/a632372394/article/details/101932556</link><guid>https://blog.youkuaiyun.com/a632372394/article/details/101932556</guid><author>a632372394</author><pubDate>Fri, 25 May 2018 10:50:00 +0800</pubDate><description><![CDATA[目前几乎很多大型网站及应用都是分布式部署的，分布式场景中的数据一致性问题一直是一个比较重要的话题。分布式的CAP理论告诉我们“任何一个分布式系统都无法同时满足一致性（Consistency）、可用性（Availability）和分区容错性（Partition tolerance），最多只能同时满足两项。”所以，很多系统在设计之初就要对这三者做出取舍。在互联网领域的绝大多数的场景中，都需要...]]></description><category></category></item><item><title><![CDATA[分享一个数据库sql_mode 引起的坑]]></title><link>https://blog.youkuaiyun.com/a632372394/article/details/101932587</link><guid>https://blog.youkuaiyun.com/a632372394/article/details/101932587</guid><author>a632372394</author><pubDate>Thu, 24 May 2018 17:19:00 +0800</pubDate><description><![CDATA[sql_mode坑
MySQL 5.7.x 默认值： ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 程序由于sql语句不严谨，出现报错，网站无法访问。

...]]></description><category></category></item><item><title><![CDATA[Dubbo+Zookeeper+SpringMVC+Maven整合实现微服务项目]]></title><link>https://blog.youkuaiyun.com/a632372394/article/details/101932585</link><guid>https://blog.youkuaiyun.com/a632372394/article/details/101932585</guid><author>a632372394</author><pubDate>Wed, 23 May 2018 15:31:00 +0800</pubDate><description><![CDATA[互联网的发展，网站应用的规模不断扩大，常规的垂直应用架构已无法应对，分布式服务架构以及流动计算架构势在必行，Dubbo是一个分布式服务框架，在这种情况下诞生的。现在核心业务抽取出来，作为独立的服务，使前端应用能更快速和稳定的响应。
第一：介绍Dubbo背景

大规模服务化之前，应用可能只是通过RMI或Hessian等工具，简单的暴露和引用远程服务，通过配置服务的URL地址进行调用，...]]></description><category></category></item><item><title><![CDATA[分布式事务]]></title><link>https://blog.youkuaiyun.com/a632372394/article/details/101932584</link><guid>https://blog.youkuaiyun.com/a632372394/article/details/101932584</guid><author>a632372394</author><pubDate>Wed, 23 May 2018 11:15:00 +0800</pubDate><description><![CDATA[前言
分布式事务是企业集成中的一个技术难点，也是每一个分布式系统架构中都会涉及到的一个东西，特别是在微服务架构中，几乎可以说是无法避免，本文就分布式事务来简单聊一下。
数据库事务
在说分布式事务之前，我们先从数据库事务说起。 数据库事务可能大家都很熟悉，在开发过程中也会经常使用到。但是即使如此，可能对于一些细节问题，很多人仍然不清楚。比如很多人都知道数据库事务的几个特性：原子性(A...]]></description><category></category></item><item><title><![CDATA[Spring bean - scope详解]]></title><link>https://blog.youkuaiyun.com/a632372394/article/details/101932582</link><guid>https://blog.youkuaiyun.com/a632372394/article/details/101932582</guid><author>a632372394</author><pubDate>Tue, 22 May 2018 15:11:00 +0800</pubDate><description><![CDATA[Scope是定义Spring如何创建bean的实例的。

在创建bean的时候可以带上scope属性，scope有下面几种类型。


Singleton


这也是Spring默认的scope，表示Spring容器只创建一个bean的实例，Spring在创建第一次后会缓存起来，之后不再创建，就是设计模式中的单例模式。


Prototype
...]]></description><category></category></item><item><title><![CDATA[spring bean初始化及销毁你必须要掌握的回调方法]]></title><link>https://blog.youkuaiyun.com/a632372394/article/details/101932580</link><guid>https://blog.youkuaiyun.com/a632372394/article/details/101932580</guid><author>a632372394</author><pubDate>Tue, 22 May 2018 15:05:00 +0800</pubDate><description><![CDATA[spring bean在初始化和销毁的时候我们可以触发一些自定义的回调操作。


初始化的时候实现的方法


1、通过java提供的@PostConstruct注解；
2、通过实现spring提供的InitializingBean接口，并重写其afterPropertiesSet方法；
3、通过spring的xml bean配置或bean注解指定初始化方法，如下...]]></description><category></category></item><item><title><![CDATA[一张图搞懂Spring bean的完整生命周期]]></title><link>https://blog.youkuaiyun.com/a632372394/article/details/101932583</link><guid>https://blog.youkuaiyun.com/a632372394/article/details/101932583</guid><author>a632372394</author><pubDate>Tue, 22 May 2018 15:03:00 +0800</pubDate><description><![CDATA[一张图搞懂Spring bean的生命周期，从Spring容器启动到容器销毁bean的全过程，包括下面一系列的流程，了解这些流程对我们想在其中任何一个环节怎么操作bean的生成及修饰是非常有帮助的。


Bean的完整生命周期所用到的组件大概可以分为以下几类：

1、Bean级别的接口

Bean自身定义的方法或者实现了接口的方法，即init-method和des...]]></description><category></category></item><item><title><![CDATA[获取Spring的ApplicationContext的几种方式]]></title><link>https://blog.youkuaiyun.com/a632372394/article/details/101932577</link><guid>https://blog.youkuaiyun.com/a632372394/article/details/101932577</guid><author>a632372394</author><pubDate>Tue, 22 May 2018 15:02:00 +0800</pubDate><description><![CDATA[Application Context定义


简单来说就是Spring中的高级容器，可以获取容器中的各种bean组件，注册监听事件，加载资源文件等功能。

具体定义可以参考官网：https://spring.io/understanding/application-context

Understanding Application Context
Th...]]></description><category></category></item><item><title><![CDATA[你必须了解Spring的生态]]></title><link>https://blog.youkuaiyun.com/a632372394/article/details/101932581</link><guid>https://blog.youkuaiyun.com/a632372394/article/details/101932581</guid><author>a632372394</author><pubDate>Tue, 22 May 2018 15:00:00 +0800</pubDate><description><![CDATA[Spring不止是提供了IOC、AOP的功能，还提供了大量的基于Spring的项目，拿来用就行了，用于一站式开发，大大降低了开发的难度。　　
下面列举下主要的一些Spring的生态项目：

Spring Boot：一站式快速开发解决项目。

Spring Cloud：提供对分布式系统的支持。

Spring Data：提供对主流的关系型及NOSQL型数据库的封装支持。...]]></description><category></category></item><item><title><![CDATA[Spring的核心模块解析]]></title><link>https://blog.youkuaiyun.com/a632372394/article/details/101932578</link><guid>https://blog.youkuaiyun.com/a632372394/article/details/101932578</guid><author>a632372394</author><pubDate>Tue, 22 May 2018 14:59:00 +0800</pubDate><description><![CDATA[Spring框架是一个轻量级的集成式开发框架，可以和任何一种框架集成在一起使用，可以说是一个大的全家桶。Spring从1.x发展到现在的5.x可以说是越来越强大，下面来看看Spring都包含哪些核心的模块吧。

Spring图中的这些模块，都至少由一个以上的jar包组成。

1、Core Container - 核心容器

spring-core：Spring中的核心工具...]]></description><category></category></item><item><title><![CDATA[Spring 5.0]]></title><link>https://blog.youkuaiyun.com/a632372394/article/details/101932575</link><guid>https://blog.youkuaiyun.com/a632372394/article/details/101932575</guid><author>a632372394</author><pubDate>Tue, 22 May 2018 14:57:00 +0800</pubDate><description><![CDATA[Spring 5.0都有什么新功能？
1、最低要求支持JDK8+, J2EE 7+。
2、移除了一些包、类及方法。
3、核心功能加强：全面应用jdk8并兼容jdk9等。
4、SpringMVC：支持servlet4.0、Reactor 3.1等。
5、支持响应式堆栈web框架Spring WebFlux。
6、支持kotlin。
7、加强了测试：完美支持Junit5等。
...]]></description><category></category></item></channel></rss>