0


浅析Spring的五大类注解和方法注解

简单的将bean对象存储到Spring容器中,可以使用五大类注解实现,也可以通过@Bean方法注解实现。

本文重点围绕这几个问题展开:

1.为什么需要五大类注解?

2.五大类注解之间有没有关系?

3.Spring使用五大类注解生成beanName问题。

4.如何使用方法注解将对象更简单的存储到容器中?


五大类注解有:Controller(控制器)、Service(服务)、Repoistory(仓库)、Configuration(配置)、Component(组件)

使用示例:

  1. - 为什么需要五大类注解?

之前我们存储Bean 时,需要在 spring-config 配置中添加⼀⾏ bean 注册内容才⾏,如下图所示:

⽽现在我们只需要⼀个注解就可以替代之前要写⼀⾏配置的尴尬了,不过在开始存储对象之前,我们先要来点准备⼯作:配置扫描路径,这一点非常重要。

注意:想要将对象成功的存储到 Spring 中,我们需要配置⼀下存储对象的扫描包路径,只有被配置的包下的所有类,添加了注解才能被正确的识别并保存到 Spring 中。

在 spring-config.xml 添加如下配置:

使用五大类注解,可以让代码的可读性提高,让程序员能够直观的判断当前类的用途。

  1. - 五大类注解之间有没有关系?

我们可以简单的查看一下这五大类注解的源码:

其实不难看出,@Controller、@Service、@Repository、@Configuration都是基于@Component 实现的,所以@Component 可以认为是其他4个注解的父类。

  1. - Spring使用五大类注解生成beanName问题。

通过前面我们对注解使用,不难发现,我们都是使用的小驼峰。一般来说按照规范,类名我们一般用大驼峰命名,然后我们在使用BeanName的时候,一般用小驼峰,把类名的首字母变成小写。

但是出现了个例,出现了不同的情况,他的类名不是用大驼峰命名,在使用beanName的时候,还是按照以往的习惯将类名首字母变成小写,这个时候就报错了。当我们使用原类名的时候就可以了,这样的问题与我们之前的使用习惯相悖,到底是什么原因呢?下面接着分析:

通过分析了,我们也可以验证一下这个函数的作用:

总结一下,如果类名使用的是大驼峰,则使用的时候用的是小驼峰,那么类名是类似APIController这种前面全部大写的,则使用的时候用原类名。

4.如何使用方法注解将对象更简单的存储到容器中?

@Bean注解只能用在方法上,而且要注意只使用一个Bean注解是无法将对象储存到容器中的。

有时候会让命名更加规范,会使⽤@Bean 注解并重命名,使⽤重命名也能正确获取到对象。注意:重命名的其实是⼀个数组,⼀个 bean 可以有多个名字。

@Bean(name = {"u1", "us1"}) 
public User user1() { 
 User user = new User(); 
 user.setId(1); 
 user.setName("Java"); 
 return user; 
} 
//并且 name={} 可以省略,如下代码所示:
@Bean({"u1", "us1"}) 
public User user1() { 
   User user = new User(); 
   user.setId(1); 
   user.setName("Java"); 
   return user; 
} 
标签: spring java mybatis

本文转载自: https://blog.csdn.net/crazy_xieyi/article/details/128752645
版权归原作者 crazy_xieyi 所有, 如有侵权,请联系我们删除。

“浅析Spring的五大类注解和方法注解”的评论:

还没有评论