spring
maikelsong
这个作者很懒,什么都没留下…
展开
-
Spring中配置和读取多个Properties文件-- PropertyPlaceholderConfigurer
一个系统中通常会存在如下一些以Properties形式存在的配置文件1.数据库配置文件demo-db.properties:database.url=jdbc:mysql://localhost/smaple database.driver=com.mysql.jdbc.Driver database.user=root database.password转载 2015-11-04 11:07:23 · 719 阅读 · 0 评论 -
Spring常用注解(收藏大全)
Spring部分1.声明bean的注解@Component 组件,没有明确的角色@Service 在业务逻辑层使用(service层)@Repository 在数据访问层使用(dao层)@Controller 在展现层使用,控制器的声明(C)2.注入bean的注解@Autowired:由Spring提供@Inject:由JSR-330提供@Resource:由J...转载 2019-06-28 16:57:11 · 105 阅读 · 0 评论 -
springboot+springcloud相关面试题
什么是springboot用来简化spring应用的初始搭建以及开发过程使用特定的方式来进行配置(properties或yml文件)创建独立的spring引用程序main方法运行嵌入的Tomcat无需部署war文件简化maven配置...转载 2019-07-10 16:01:25 · 153 阅读 · 0 评论 -
Spring Boot 入门之基础篇(一)
一、前言Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。本系列以快速入门为主,可当作工具小手册阅读二、环境搭建创建一个 maven 工程,目录结构如下图:2.1 添加依赖创建 maven 工程,在 pom.xml ...转载 2019-06-30 12:25:41 · 139 阅读 · 0 评论 -
Spring Boot 入门之 Web 篇(二)
一、前言上一篇《Spring Boot 入门之基础篇(一)》介绍了 Spring Boot 的环境搭建以及项目启动打包等基础内容,本篇继续深入介绍 Spring Boot 与 Web 开发相关的知识。二、整合模板引擎由于 jsp 不被 SpringBoot 推荐使用,所以模板引擎主要介绍 Freemarker 和 Thymeleaf。2.1 整合 Freemarker2.1.1...转载 2019-06-30 12:27:35 · 106 阅读 · 0 评论 -
Spring Cloud 入门 之 Eureka 篇(一)
一、前言Spring Cloud 是一系列框架的有序集合。它利用 Spring Boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 Spring Boot 的开发风格做到一键启动和部署。本篇介绍 Spring Cloud 入门系列中的 Eureka,实现快速入门。二、简单介绍Eureka 是 Net...转载 2019-06-30 13:24:05 · 127 阅读 · 0 评论 -
Spring Cloud 入门 之 Ribbon 篇(二)
一、前言上一篇《Spring Cloud 入门 之 Eureka 篇(一)》介绍了微服务的搭建,服务注册与发现。但在文章中留了一个小尾巴–如何正确使用 Eureka 进行服务发现并调用服务。本篇文章将介绍如何使用 Ribbon 完成发现服务的调用以及其负载均衡的规则的使用。二、简单介绍Spring Cloud Ribbon 是基于 Netflix Ribbon 实现的一套客户端负...转载 2019-06-30 13:31:18 · 129 阅读 · 0 评论 -
Spring Cloud 入门 之 Feign 篇(三)
一、前言在上一篇文章《Spring Cloud 入门 之 Ribbon 篇(二)》中介绍了 Ribbon 使用负载均衡调用微服务,但存在一个问题:消费端每个请求方法中都需要拼接请求服务的 URL 地址,存在硬编码问题且不符合面向对象编程思想。如果服务名称发生变化,消费端也需要跟着修改。本篇文章将介绍 Feign 来解决上边的问题。二、简单介绍Feign 是一个声明式的 Web S...翻译 2019-06-30 13:35:44 · 140 阅读 · 0 评论 -
Spring Cloud 入门 之 Hystrix 篇(四)
一、前言在微服务应用中,服务存在一定的依赖关系,如果某个目标服务调用慢或者有大量超时造成服务不可用,间接导致其他的依赖服务不可用,最严重的可能会阻塞整条依赖链,最终导致业务系统崩溃(又称雪崩效应)。上述的问题将是本篇需要解决的问题。二、简单介绍2.1 请求熔断断路器是一种开关设置,当某个服务单元发生故障之后,通过断路器的故障监控,向调用方返回一个符合预期的服务降级处理(fall...转载 2019-06-30 13:41:56 · 148 阅读 · 0 评论 -
Spring Cloud 入门 之 Zuul 篇(五)
一、前言随着业务的扩展,微服务会不对增加,相应的其对外开放的 API 接口也势必增多,这不利于前端的调用以及不同场景下数据的返回,因此,我们通常都需要设计一个 API 网关作为一个统一的 API 入口,来组合一个或多个内部 API。二、简单介绍#2.1 API 网关使用场景黑白名单: 实现通过 IP 地址控制请求的访问 日志:实现访问日志的记录,进而实现日志分...转载 2019-07-01 13:40:04 · 139 阅读 · 0 评论 -
spring对多线程支持,@EnableAsync@Async
我们在使用多线程的时候,往往需要创建Thread类,或者实现Runnable接口,如果要使用到线程池,我们还需要来创建Executors,在使用spring中,已经给我们做了很好的支持。只要要@EnableAsync就可以使用多线程。使用@Async就可以定义一个线程任务。通过spring给我们提供的ThreadPoolTaskExecutor就可以使用线程池。下面举个例子来说明首先定义...翻译 2019-06-28 16:56:24 · 244 阅读 · 0 评论 -
使用Spring AOP实现MySQL数据库读写分离案例分析
一、前言分布式环境下数据库的读写分离策略是解决数据库读写性能瓶颈的一个关键解决方案,更是最大限度了提高了应用中读取 (Read)数据的速度和并发量。在进行数据库读写分离的时候,我们首先要进行数据库的主从配置,最简单的是一台Master和一台Slave(大型网站系统的话,当然会很复杂,这里只是分析了最简单的情况)。通过主从配置主从数据库保持了相同的数据,我们在进行读操作的时候访问从数据库Slave,...转载 2018-07-13 14:28:29 · 110 阅读 · 0 评论 -
Spring 使用注解方式进行事务管理
使用步骤:步骤一、在spring配置文件中引入<tx:>命名空间<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schem...转载 2018-07-16 11:00:39 · 104 阅读 · 0 评论 -
IOC 实现原理
本文是《轻量级 Java Web 框架架构设计》的系列博文。IOC 也就是“控制反转”了,不过更流行的叫法是“依赖注入”(DI - Dependency Injection)。听起来挺高深,其实实现起来并不复杂。下面就看看如何来实现这个轻量级 IOC 框架。从实例出发,先看看以下 Action 代码。?1234转载 2015-11-10 15:51:42 · 797 阅读 · 0 评论 -
AOP 实现原理
本文是《轻量级 Java Web 框架架构设计》的系列博文。最近两天都在研究 AOP,很想做一个轻量级的 AOP,今天尝试了一天,用到了 CGLib、ASM、Javassist 等技术,但都已失败而告终。有人会问我:Spring 都选择了知名的 AspectJ 开源 AOP 类库,而你为何不尝试一下呢?原因其实很简单,AspectJ 的 jar 将近 2M,功能肯定是非常强转载 2015-11-10 15:52:54 · 278 阅读 · 0 评论 -
AOP 那点事儿
又是一个周末,刚给宝宝喂完牛奶,终于让她睡着了。所以现在我才能腾出手来,坐在电脑面前给大家写这篇文章。今天我要和大家分享的是 AOP(Aspect-Oriented Programming)这个东西,名字与 OOP 仅差一个字母,其实它是对 OOP 编程方式的一种补充,并非是取而代之。翻译过来就是“面向方面编程”,可我更倾向于翻译为“面向切面编程”。它听起有些的神秘,为什么呢?当你看完这篇转载 2015-12-11 16:12:59 · 339 阅读 · 0 评论 -
AOP 那点事儿(续集)
本文是《AOP 那点事儿》的续集。在上篇中,我们从写死代码,到使用代理;从编程式 Spring AOP 到声明式 Spring AOP。一切都朝着简单实用主义的方向在发展。沿着 Spring AOP 的方向,Rod Johnson(老罗)花了不少心思,都是为了让我们使用 Spring 框架时不会感受到麻烦,但事实却并非如此。那么,后来老罗究竟对 Spring AOP 做了哪些改进呢?转载 2015-12-11 16:22:03 · 402 阅读 · 0 评论 -
使用“链式代理”实现 AOP
本文是《轻量级 Java Web 框架架构设计》的系列博文。大家是否还记得《Proxy 那点事儿》中提到的 CGLib 动态代理吗?我就是使用这个工具来实现了 Smart AOP 的,原以为这样 AOP 就轻松搞定了,但万万没想到的是,自己太傻太天真。昨天刚发现 Smart AOP 的 AOPHelper 类有个严重的 Bug,导致同一个目标类不能同时被多个切面类横切,运行时会转载 2015-12-11 18:48:44 · 1045 阅读 · 0 评论 -
Spring中Bean的生命周期及其扩展点
Spring中Bean的管理是其最基本的功能,根据下面的图来了解Spring中Bean的生命周期:解说:(1)BeanFactoryPostProcessor的postProcessorBeanFactory()方法:若某个IoC容器内添加了实现了BeanFactoryPostProcessor接口的实现类Bean,那么在该容器中实例化任何其他Bean之前可以回调该Bean转载 2018-02-01 18:00:32 · 243 阅读 · 0 评论 -
Spring源码学习--Bean的生命周期
Spring作为当前Java最流行、最强大的轻量级框架,受到了程序员的热烈欢迎。准确的了解Spring Bean的生命周期是非常必要的。我们通常使用ApplicationContext作为Spring容器。这里,我们讲的也是 ApplicationContext中Bean的生命周期。而实际上BeanFactory也是差不多的,只不过处理器需要手动注册。一、生命周期流程图:转载 2018-02-06 13:58:26 · 188 阅读 · 0 评论 -
Spring中@Autowired注解,@Resource注解和xml default-autowire区别
String resourceName = resource.name();this.isDefaultName = !StringUtils.hasLength(resourceName);if (this.isDefaultName) { resourceName = this.member.getName(); if (this.member instanceof Method ...转载 2018-06-29 11:02:59 · 288 阅读 · 0 评论 -
Spring Cloud 入门 之 Config 篇(六)
一、前言随着业务的扩展,为了方便开发和维护项目,我们通常会将大项目拆分成多个小项目做成微服务,每个微服务都会有各自配置文件,管理和修改文件起来也会变得繁琐。而且,当我们需要修改正在运行的项目的配置时,通常需要重启项目后配置才能生效。上述的问题将是本篇需要解决的问题。二、介绍#2.1 简单介绍Spring Cloud Config 用于为分布式系统中的基础设施和微服务应用提供集...转载 2019-07-01 13:41:13 · 183 阅读 · 0 评论