Spring boot @Service 和@Configuration 的区别?
发布网友
发布时间:2022-03-25 00:42
我来回答
共1个回答
热心网友
时间:2022-03-25 02:12
注解不是这么看的,注解的定义只是说它能作用在哪儿,它能提供哪些参数,具体什么时候用到,那是spring里的东西。注解我的理解只是一个标签,告诉java这个类是个什么东西,比如业务引用了某个类,通过getAnnotation()方法来知道:“哦,原来我引用的类是这个东西啊”,这样就可以对业务引用的这个类进行一些特殊处理了。
不然照你这么说那jdk提供的这些注解,比如:
难道也是重复没有作用的吗?
@Service是告诉spring,这个类是一个服务,个人觉得是随着SOA理念的发展而逐步传播开的。将业务分为一个个的服务,实现服务的重用,也进一步降低耦合度。
另外还有一个非常常见的注解@Component,它的意思就是一个组件,相对来说比较中立,仅仅作为某种功能放在那里。老实说,其实@Service和@Component才是基本没什么差别,两者相互代替也没什么毛病。
所以我个人还觉得啊,注解还有一个作用就是将功能模块分类,服务相关的类统一加上注解@Service,放到一个文件夹下。所有组件@Component也是放到一起,另外那些@Mapper啊,@Controller啊,让整个项目层次清晰,结构完善。
@Configuration告诉spring,这个类是一个配置类,和写xml进行配置差不多,只是有些人不喜欢写xml进行配置,那就直接写类加上@Configuration来配置咯
最后再补充网上说的一句话,也就是我前面提到的spring做的一些特殊处理了:“这几个注解几乎可以说是一样的:因为被这些注解修饰的类就会被Spring扫描到并注入到Spring的bean容器中。”
追问@Service默认单例,但@Component是多例的 而且@sevice是springboot组件,@Component只是交由spring管理的自定义bean组件,他们的初始化是有顺序的,你可以在@service中注入@Componet注解的bean,但不能反过来注入。
@Configuration默认也是单例的
追答
???
看图1
SpringBoot基于Spring,@Service是Spring的注解;
看图2-5,证明你说的“你可以在@service中注入@Componet注解的bean,但不能反过来注入”并不对,你可以实际做一次试试再下结论。在我看来,两者就是可以相互代替。
Spring boot @Service 和@Configuration 的区别?
Configuration告诉spring,这个类是一个配置类,和写xml进行配置差不多,只是有些人不喜欢写xml进行配置,那就直接写类加上@Configuration来配置咯 最后再补充网上说的一句话,也就是我前面提到的spring做的一些特殊处理了:“这几个注解几乎可以说是一样的:因为被这些注解修饰的类就会被Spring扫描到并注...
springboot常用注解
2、@SpringBootConfiguration注解,继承@Configuration注解,主要用于加载配置文件。@SpringBootConfiguration继承自@Configuration,二者功能也一致,标注当前类是配置类, 并会将当前类内声明的一个或多个以@Bean注解标记的方法的实例纳入到spring容器中,并且实例名就是方法名。3、starter 是 SpringBoot 中一种...
springboot常用注解(springboot配置文件加载顺序详解)
3、SpringBootApplication注解是SpringBoot的灵魂注解这个注解整合了3个注解的特性:分别是@Configuration注解、@Component注解、@EnableAutoConfiguration注解。SpringBoot项目主启动类上常用的注解释意1、springboot常用注解有@SpringBootApplication;@Repository;@Service;@RestController;@ResponseBody。2、:##@S...
springboot中注解(springboot中注解有哪些)
SpringBootApplication注解是SpringBoot的灵魂注解这个注解整合了3个注解的特性:分别是@Configuration注解、@Component注解、@EnableAutoConfiguration注解。SpringBoot最核心的25个注解@SpringBootApplication这是SpringBoot最最最核心的注解,用在SpringBoot主类上,标识这是一个SpringBoot应用,用来开启SpringBoot的...
Springboot验证器注解?
2、springboot常用注解有@SpringBootApplication;@Repository;@Service;@RestController;@ResponseBody。3、SpringBootApplication注解是SpringBoot的灵魂注解这个注解整合了3个注解的特性:分别是@Configuration注解、@Component注解、@EnableAutoConfiguration注解。springboot注解、工厂特性创建对象SpringBoot具有Spring...
springboot各种注解(springboot的常用注解)
1、@SpringBootApplication 这是SpringBoot最最最核心的注解,用在SpringBoot主类上,标识这是一个SpringBoot应用,用来开启SpringBoot的各项能力。 其实这个注解就是@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan这三个注解的组合,也可以用这三个注解来代替@SpringBootApplication注解。 2、@EnableAutoCon...
springBoot @RequestBody 写在方法上与写在参数上的区别?
从源代码可以看到@SpringBootConfiguration继承自@Configuration,这两个注解的功能也是一样的。b) @EnableAutoConfiguration此注释自动载入应用程序所需的所有Bean。c) @ComponentScan该注解会扫描指定路径下的的类,并将其加入到IoC容器中。在springboot中,@ComponentScan默认扫描@SpringBootApplication所在类的同级目录以及它...
@configuration 和spring.factories区别
Configuration一般被用来初始化配置,有两种方法可以使带有@Configuration的类被初始化,一为让把类所在包的路径纳入 scanBasePackages,这样就进入了Spring的扫描范围;还有一种方法就是在spring.factories中用 org .springframework.boot.autoconfigure.EnableAutoConfiguration=类的全路径名,这样...
springbootconfiguration注解(springboot的configuration注解...
可以用来替代相应的xml配置文件。SpringBootApplication注解是SpringBoot的灵魂注解这个注解整合了3个注解的特性:分别是@Configuration注解、@Component注解、@EnableAutoConfiguration注解。这个注解就是@Configuration注解的变体,只是用来修饰是SpringBoot配置而已,或者可利于SpringBoot后续的扩展。
spring框架的注解有哪些?
4、##@SpringBootConfiguration:读取配置文件,配置文件的路径是当前根目录(src/main/resources/application.yml等)。5、那么都有哪些注解咧?说一下我在工作中常用的注解1:##@SpringBootApplication标识该类为SpringBoot项目启动类。6、springboot常用注解有@SpringBootApplication;@Repository;@Service;@...