使用Spring Boot快速搭建微服务

使用 Spring Boot 已经两年多了,我从刚开始的抵触,到积极拥抱,再到现在进行若干反思,这中间积累了一些使用心得和一些个人的思考。本文将对 Spring Boot 做一个整体的概述,阅读完文章,你将会了解到下面这些:

  1. Spring Boot 是什么
  2. Spring Boot 快速上手
  3. Spring Boot 的优势
  4. Spring Boot 的不足
  5. Spring Boot 实践经验

注意:下面的介绍中,将不区分 应用服务(当然它们本质上是有区别的),都指的是一个 Spring Boot 项目,此外,除非特别说明,下面的包依赖管理工具均指的是 maven。

阅读更多

《SpringBoot揭秘:快速构建微服务体系》读书笔记

春节假期过后,为了消除假期综合征,就花了一两天读了这本《SpringBoot 揭秘:快速构建微服务体系》,简单的感悟如下:

  1. 整本书内容不多,前三章关于 Springboot 的论述 不错,后两章(Scala + SpringBoot)有狗尾续貂之嫌;
  2. 看得出来作者还是希望表达一些技术理念的,但很多地方没有展开,所以整本书给人一种泛泛而谈的感觉;
  3. 这本书其实可以浓缩为3~5篇博客。

如果没有接触过 Springboot 和微服务,那么这本书还是值得一读的。

阅读更多

SpringBoot 启动 Scala 项目:NoClassDefFoundError

今天尝试将一个 scala 项目转为 springboot 项目时,出现了无法找到主类的报错,现象如下:

  1. 在 IDEA 里面新建 SpringBoot 启动配置,运行后启动成功。
  2. 在 POM 目录 执行 mvn spring-boot:run 运行项目,启动成功;
  3. 线下环境 通过 java -jar jar_name.jar,运行成功;
  4. 线上脚本启动时(事实上也是运行的 java -jar…),抛出异常:
阅读更多

Spring测试用例自动注入Bean(下)

如果Bean的初始化是通过 xml 进行的,可以参考文章:Spring测试用例自动注入Bean(上),下面讲到的是「在没有 xml配置文件时,如何测试诸如 @Component @Service @Repository 等注解标识的类」。

待测试的类,注意该 Bean 有一个 init() 方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
@Service
public class DemoService {

/* 初始化逻辑*/
@PostConstruct
public void init() {
// initialization code
}

public void printName() {
System.out.println("I'm Yves");
}
}
阅读更多

Bean的初始化顺序

[toc]

一个问题,如何让ClassB在ClassA之前被初始化?

不使用配置类

即使用 @Component@Service 等注解的Bean。

阅读更多

Spring测试用例自动注入Bean(上)

简单梳理了下有下面三种方法:

SpringBoot项目 + 注解标识的Bean

说明:即在SpringBoot项目中,通过 @Autowired 注入 其他通过 @Component@Service 等注解加入IOC容器里面的Bean。

方法:在Test类前加入以下注解:

阅读更多

Spring中几组容易混淆的注解

@Resource VS @Autowired

  1. @Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上。
  2. @Autowired默认按类型装配(这个注解是属于Spring的),默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false,如:@Autowired(required=false) ,如果我们想使用名称装配可以结合@Qualifier注解进行使用。
  3. @Resource(这个注解属于J2EE的),默认安装名称进行装配,名称可以通过name属性进行指定,如果没有指定name属性,当注解写在字段上时,默认取字段名进行安装名称查找,如果注解写在setter方法上默认取属性名进行装配。当找不到与名称匹配的bean时才按照类型进行装配。但是需要注意的是,如果name属性一旦指定,就只会按照名称进行装配。
阅读更多

:D 一言句子获取中...