java通关整理汇总-Java基础、计算机网络、数据库、设计模式、框架、算法模板、笔试
微服务入门
所谓微服务,就是打破之前all in one的架构方式,把每个功能元素独立出来。把独立出来的功能元素动态组合,需要的功能元素才用来组合,需要多一些功能元素就可以整合多个功能元素。所以微服务架构是对功能元素进行复制,而没有对整个应用进行复制。
使用了网站上的搜索栏来浏览产品,这个搜索功能就是一项服务。看到网页中的相关产品推荐,这些推荐项均来自顾客偏好数据库,也是一项服务。微服务就是应用的各项核心功能,而且这些服务均可独立运行。
这样做的好处:
//@SpringBootApplication:标注这是一个springboot应用
@SpringBootApplication
public class Springboo01helloworldApplication {
public static void main(String[] args) {
//将springboot应用启动
SpringApplication.run(Springboo01helloworldApplication.class, args);
}
}
SpringBoot使用一个全局的配置文件 , 配置文件名称是固定的
yaml
YAML是 “YAML Ain’t a Markup Language” (YAML不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:“Yet Another Markup Language”(仍是一种标记语言)
这种语言以数据作为中心,而不是以标记语言为重点!
yaml注入配置文件
1、在springboot项目中的resources目录下新建一个文件 application.yml
2、编写一个实体类 Dog
@Component //注册bean到容器中
public class Dog {
private String name;
private Integer age;
//有参无参构造、get、set方法、toString()方法
}
3、我们原来是如何给bean注入属性值的!@Value,给狗狗类测试一下
@Component //注册bean
public class Dog {
@Value("阿黄")
private String name;
@Value("18")
private Integer age;
}
4、SpringBoot的测试类下注入狗狗
@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")
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}
配置yml和配置properties都可以获取到值 , 强烈推荐 yml;
如果我们在某个业务中,只需要获取配置文件中的某个值,可以使用一下 @value;
如果说,我们专门编写了一个JavaBean来和配置文件进行一一映射,就直接@configurationProperties,不要犹豫!
1、SpringBoot启动会加载大量的自动配置类
2、我们看我们需要的功能有没有在SpringBoot默认写好的自动配置类当中;
3、我们再来看这个自动配置类中到底配置了哪些组件;(只要我们要用的组件存在在其中,我们就不需要再手动配置了)
4、给容器中自动配置类添加组件的时候,会从properties类中获取某些属性。我们只需要在配置文件中指定这些属性的值即可;
xxxxAutoConfigurartion:自动配置类;给容器中添加组件
xxxxProperties:封装配置文件中相关属性;