springboot通关整理1-微服务、快速入门、自动装配原理

java通关整理汇总-Java基础、计算机网络、数据库、设计模式、框架、算法模板、笔试


  • Spring 是为了解决企业级应用开发的复杂性而创建的,简化开发
  • Spring的四种关键策略:POJO、IOC、AOP、模板

微服务

微服务入门

所谓微服务,就是打破之前all in one的架构方式,把每个功能元素独立出来。把独立出来的功能元素动态组合,需要的功能元素才用来组合,需要多一些功能元素就可以整合多个功能元素。所以微服务架构是对功能元素进行复制,而没有对整个应用进行复制。

使用了网站上的搜索栏来浏览产品,这个搜索功能就是一项服务。看到网页中的相关产品推荐,这些推荐项均来自顾客偏好数据库,也是一项服务。微服务就是应用的各项核心功能,而且这些服务均可独立运行。

这样做的好处:

  • 节省调用资源
  • 每个功能元素都是可替代的、可独立升级的软件代码

第一个SpringBoot程序

主程序
//@SpringBootApplication:标注这是一个springboot应用
@SpringBootApplication
public class Springboo01helloworldApplication {

    public static void main(String[] args) {
    	//将springboot应用启动
        SpringApplication.run(Springboo01helloworldApplication.class, args);
    }
}

yaml配置注入

SpringBoot使用一个全局的配置文件 , 配置文件名称是固定的

  • application.properties
  • 语法结构 :key=value
  • application.yml
  • 语法结构 :key:空格 value

yaml

YAML是 “YAML Ain’t a Markup Language” (YAML不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:“Yet Another Markup Language”(仍是一种标记语言)

这种语言以数据作为中心,而不是以标记语言为重点!

yaml注入配置文件

1、在springboot项目中的resources目录下新建一个文件 application.yml
在这里插入图片描述
2、编写一个实体类 Dog

  • @Component //注册bean(组件)
@Component  //注册bean到容器中
public class Dog {
    private String name;
    private Integer age;
    
    //有参无参构造、get、set方法、toString()方法  
}

3、我们原来是如何给bean注入属性值的!@Value,给狗狗类测试一下

  • @Value("") //赋值
@Component //注册bean
public class Dog {
    @Value("阿黄")
    private String name;
    @Value("18")
    private Integer age;
}

4、SpringBoot的测试类下注入狗狗

  • @Autowired //自动注入
@SpringBootTest
class DemoApplicationTests {

    @Autowired //将狗狗自动注入进来
    Dog dog;

    @Test
    public void contextLoads() {
        System.out.println(dog); //打印看下狗狗对象
    }
}

输出:
Dog(name=阿黄,age=18)

5、使用yaml配置的方式进行注入

在application.yml中配置注入

dog:
  name: wangcai
  age: 1

6、将值注入到类中

  • @Component //注册bean
  • @ConfigurationProperties(prefix = “dog”)
@Component                 //注册bean
@ConfigurationProperties(prefix = "dog")
public class Dog {

    private String name;
    private Integer age;

//构造器和get、set方法、toString方法
}

7、测试

@SpringBootTest
class DemoApplicationTests {

    @Autowired
    Person person; //将person自动注入进来

    @Test
    public void contextLoads() {
        System.out.println(person); //打印person信息
    }
}

输出:

Dog{name='wangcai', age=1}

yaml配置结论

配置yml和配置properties都可以获取到值 , 强烈推荐 yml;

如果我们在某个业务中,只需要获取配置文件中的某个值,可以使用一下 @value;

如果说,我们专门编写了一个JavaBean来和配置文件进行一一映射,就直接@configurationProperties,不要犹豫!

自动装配原理

1、SpringBoot启动会加载大量的自动配置类

2、我们看我们需要的功能有没有在SpringBoot默认写好的自动配置类当中;

3、我们再来看这个自动配置类中到底配置了哪些组件;(只要我们要用的组件存在在其中,我们就不需要再手动配置了)

4、给容器中自动配置类添加组件的时候,会从properties类中获取某些属性。我们只需要在配置文件中指定这些属性的值即可;

xxxxAutoConfigurartion:自动配置类;给容器中添加组件

xxxxProperties:封装配置文件中相关属性;

猜你喜欢

转载自blog.csdn.net/weixin_45773603/article/details/108317879