上一篇博客我们介绍了如何使用xml来引入bean对象,当项目多的时候,显然那样是比较麻烦的。
现在我们只需要 个注解就可以替代了。注意:注解和xml可以同时使用
准备工作:配置扫描路径
我们需要配置 下存储对象的扫描包路径,只有被配置的包下的所有类,添加了注解才能被正确的识别并保存到 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>
注解
类注解:@Controller、@Service、@Repository、@Configuration。@Component
方法注解:@Bean
其实这些注解的使用,都是一样的,而前 四个注解都继承Component,源码中可以看到
类注解的分类
@Configuration(配置):配置层,配置当前项目的一些信息
@Controller(控制器):控制层,主要负责前端参数校验,检查用户参数的有效性
@Service(服务):服务层,调用持久化类实现相应的功能(不直接和数据库交互,类似控制中心)
@Repository(仓库):持久层,直接和数据库进行交互,通常每个表都有一个对应的Repository
@Component(组件):公共工具类,提供某些公共方法,是其他四个注解的父亲。通常不属于上面四种情况的时候使用这个,可以理解为其他。
类注解的命名
类注解不用再设置id,而是自动设置。默认是类名首字母小写即为id。
源码:
方法注解@Bean
① 要配合类注解使用,否则就是无效的注解。因为不会扫描到这个类,自然就不会扫描到这个方法。
② 默认情况 Bean name == 方法名
③可以自己给其设置方法名,设置后默认的就会失效