meua's blog

曾梦想仗剑走天涯,后来bug太多就没去


  • 首页

  • 标签

  • 分类

  • 归档

  • 搜索

Spring AOP其实很简单

发表于 2018-04-24 | 分类于 Spring | | 阅读次数:

Spring AOP其实很简单

什么是AOP

AOP(Aspect-Oriented Programming),面向切面编程,是OOP的补充和完善。OOP允许定义从上到下的关系,但并不适合从左到右的关系。比如日志功能,日志的记录往往散步在系统的各个地方,如果用OOP来实现,就会出现大量重复的代码,而这些记录日志的动作和核心业务没有直接的关系,这时候就需要AOP,对所有记录日志的动作进行一种称为“横切”的操作。就是用这种“横切”的操作,剖解开对象内部,将那些影响多个类的公共行为封装到一个可重用的模块,命名为“Aspect”,即方面。就是将那些与业务无关,却为业务模块所共用的逻辑,封装起来,减少代码的重复,同时降低系统耦合度。

下面以几张图来说明AOP的作用:

在日常的开发中,多个业务逻辑会存在相同代码的情况,这时候屌丝程序员就会进行一个操作-复制->粘贴->大功告成!

阅读全文 »

从源码开始重新认识ThreadLocal

发表于 2018-04-20 | 分类于 Java Concurrency | | 阅读次数:

从源码开始重新认识ThreadLocal

最近在巩固Java基础,发现很多平时在使用的东西,其实自己并不了解它的原理,在看了JDK1.8中ThreadLocal这个工具类的源码的同时,也翻看了很多大牛写的博客,总结下来,加深记忆。

简介

从JDK1.2开始,Java就提供了ThreadLocal类。
image

所谓ThreadLocal,是Thread Local Variable(线程局部变量)的意思,ThreadLocal是java.lang包下提供的一个工具类,主要的作用是隔离线程资源,保证线程安全,通过ThreadLocal类,我们可以为每个线程创建一个独立的变量副本,从而避免并发访问时的线程安全问题。

基本方法

ThreadLocal类似于HashMap,保存的是k:v型数据结构,但是他只能保存一个,各个线程的数据互不影响。

ThreadLocal只提供了一个空的构造函数。

阅读全文 »

SpringBoot整合Dubbo2.5.10

发表于 2018-04-18 | 分类于 SpringBoot | | 阅读次数:

SpringBoot整合Dubbo2.5.10,使用官方最新spring-boot-starter

开始

Dubbo已经进入了Apache孵化器,并且发布了官方的spring-boot-starter0.1.0,用于简化dubbo应用的配置,主要包括了autoconfigure(自动装配),externalized-configuration(外部化配置),actuator(生产准备)等,可参考官方github dubbo-spring-boot-starter.

准备工作

需要提前安装好JDK1.8,Maven,Zookeeper。

初始化Maven项目

为了整个项目结构清晰,使用模块化的maven项目。pom文件如下:

阅读全文 »

Vue+SpringBoot实现前后端分离的文件上传

发表于 2018-04-18 | 分类于 SpringBoot | | 阅读次数:

Vue+SpringBoot实现前后端分离的文件上传

这篇文章需要一定Vue和SpringBoot的知识,分为两个项目,一个是前端Vue项目,一个是后端SpringBoot项目。

后端项目搭建

我使用的是SpringBoot1.5.10+JDK8+IDEA
使用IDEA新建一个SpringBoot项目,一直点next即可

项目创建成功后,maven的pom配置如下

阅读全文 »

SpringBoot整合Elastic-Job-lite,实现动态创建定时任务,任务持久化

发表于 2018-04-17 | 分类于 SpringBoot | | 阅读次数:

SpringBoot整合Elastic-Job-lite,实现动态创建定时任务,任务持久化

Elastic-Job是当当开源的一个分布式调度解决方案,由两个相互独立的子项目Elastic-Job-Lite和Elastic-Job-Cloud组成。

Elastic-Job-Lite定位为轻量级无中心化解决方案,使用jar包的形式提供分布式任务的协调服务;Elastic-Job-Cloud采用自研Mesos Framework的解决方案,额外提供资源治理、应用分发以及进程隔离等功能。

这里以Elastic-Job-lite为例,跟SpringBoot进行整合,当当的官方文档中并没有对SpringBoot集成作说明,所有的配置都是基于文档中的xml的配置修改出来的。

起步

准备好一个SpringBoot的项目,pom.xml中引入Elastic-job,mysql,jpa等依赖

阅读全文 »

Hello World

发表于 2018-04-17 | | 阅读次数:

Hello World

欢迎来到我的个人博客,今天终于开通了我的个人博客,以后将在这里分享我的生活,学习经历。

12
meua

meua

Stay hungry, Stay foolish.

16 日志
7 分类
21 标签
GitHub E-Mail CSDN
© 2018 meua
由 Hexo 强力驱动
|
主题 — NexT.Gemini v5.1.4