Spring boot和Spring cloud的关系

版本信息

image-20201028222330380

  • spring boot专注于快速方便的开发单个个体微服务,就是把你写的东西,打成一个一个的JAR包
  • Spring cloud是关注全局的微服务治理框架,他将一个一个的spring boot服务进行一个管理,为这些微服务提供一些集成服务
  • spring cloud不可以离开spring boot独立使用,但是spring boot却可以独立使用;

image-20201021211327775

在往下面学习的途中,补充一点:

@Bean和@component的区别

第一点,一般使用@Bean是使用在**@configuration**里面的作为一个配置类,把我们需要的对象,实例化以后再发给我们;对比就是下面的图示:

1
2
3
4
 <bean id="UserServiceImpl" class="com.saxon.Service.UserServiceImpl">
<property name="userDao" ref="OralceUserImpl"/>
<constructor-arg name="userDao" ref="OralceUserImpl"/>
</bean>

上面就是在spring里面使用的方法注册一个bean,前提是你使用的外来的插件,比如说mybatis里面的SqlSessionFactoryBean一样,你知道要用但是你没有办法使用一个@component在SqlSessionFactoryBean上面(你是直接使用的一方),让他返回出来需要的值;这个时候直接使用@Bean直接返回一个对象就可以了;

改变以后就是下面的代码:

1
2
3
4
@Bean
public SqlSessionFactoryBean getSqlSessionFactoryBean(){
return new SqlSessionFactoryBean();
}

当然这个实在@configuration注释里面的东西;

其次就是,@component,使用在我们自己写的类里面,使用它自动装配在后面可以使用@autowired注解注入这个bean来使用

在pom.xml里面统一管理项目的版本,子项目想要使用直接引用,使用scope和type但是需要注意的是我们的版本号管理就是只能在dependencyManagement里面使用,在其他地方使用无效