在上篇博客中我们学习了怎样简单的读取和存储Bean对象
我们发现简单的读取和存储Bean对象并没有那么简单,那么今天我们就来说说更加简单的实现读取和存储Bean对象的方法
一.存储Bean对象并且使用五大类注解
我们知道之前我们所学的是在前置工作准备好之后(添加Spring依赖,添加启动类),我们需要在Spring-config.xml中添加一行bean注册才行
但是今天我们只需要写一行 配置就可以一劳永逸,在此之前我们需要做一些前置工作
1.1 配置扫描路径
只有配置了扫描路径,我们添加五大注解的类才能被识别到并且保存到Spring中
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:content="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
<content:component-scan base-package="com.bit.service"></content:component-scan>
</beans>
若不是在这个扫描路径中的类,即使加了五大类注解,那么也不会被识别保存到Spring中
1.2 添加注解
通过添加注解使Bean对象存储到Spring中有两种方式
1.类注解:@Controller ,@Service ,@Repository ,@Component ,@Configuration
2.方法注解:@Bean
首先让我们先来看看类注解的使用方法
1.2.1 @Controller(控制器存储)
先让我们看看其使用方法
接着我们来获取这个UserController对象
1.2.2 @Service(服务存储)
与上方一致
1.2.3 @Repository(仓库存储)
1.2.4 @Component(组件存储)
1.2.5 @Configration(配置存储)
终于写完了....
我们可以看到这些代码其实除了注解的名称不一样,代码实际上都是一样的,那么既然他们作用都一样那么为什么要有这么多注解呢....
其实这是为了可以让在工作中程序员看到这个注解就知道这个类的用途
@Controller表示的是业务逻辑层
@Service表示的是服务层
@Repository表示的是持久层
@Configuration表示的是配置层
并且我们看这些注解的源码可以发现,他们都是Component的子类
1.3 Bean的命名规则
在上述代码中我们可以发现Bean的命名规则基本都是首字母小写的类名
但是这种方法是唯一的命名规则吗
接下来我们看这样一种情况
这种情况是类名前两个字母都为大写,结果就无法用此方法命名了
那么我们要怎么办呢
我们来看这段Bean命名规则的源码就可以发现 如果第一个字母和第二个字母都为大写的情况那么就把第一个字母也存储了,否则就首字母小写
那么我们就可以这样命名
二 使用Bean注解
使用Bean注解存储Bean对象不是将注解放到类上而是放到方法上的,并且是必须要配合类注解才可以使用
我们先创建一个User实体类
接着使用Bean注解存入Spring容器
接着我们看看能不能使用他
成功的能够用到
2.1 Bean重命名
我们可以在Bean注解中使用name属性加上重命名
这个name属性还可以是一个数组就是不止可以拥有一个名字