Spring更简单保存和获取bean对象的方法
我们介绍了通过配置spring.xml配置文件的方式来保存和获取bean对象,但是,通过配置文件的方式来保存和获取bean对象并不方便和简洁。所以,我在介绍一个更加简单和方便的方法—>通过注解的方式来保存和获取bean对象
前置准备
我们还是需要创建一个spring-config.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="扫描的根目录"></content:component-scan>
<!-- 扫描注解 -->
</beans>
将bean对象更为简单地保存到Spring容器中(使用注解)
【使用类注解】 (是写在类前的)
<1>@Controller【控制器】验证前端传递的参数【安全检查】
<2>@Service【服务】服务调用的编排和汇总
<3>@Repository【仓库】直接操作数据库
<4>@Component【组件】通用化的工具类
<5>@Configuration【配置】项目的所有配置
使用方式也很简单,只要将注解写在要给Spring管理的类前就行了(注意:要配置好扫描路径,要在扫描路劲里)
示例截图:
为什么要这么多类注解?
就是让程序员看到类注解之后,就能直接了解当前类
的⽤途,⽐如:
@Controller:表示的是业务逻辑层;
@Service:服务层;
@Repository:持久层;
@Configuration:配置层
程序的⼯程分层,调⽤流程如下:
类注解之间的关系
查看 @Controller / @Service / @Repository / @Configuration 等注解的源码发现,他们都有使用用@Component,
他们都是基于@Component实现的。
使用类注解 Bean 命名规则
我们在使用五个类注解让对象交给Spring管理的时候,我们可以自己给对象命名,或者使用bean的默认名字
【方式一】自己给对象命名,以@Controller为例
@Controller(“我们自己取的名字”)
【方式二】使用默认名字
规则:
一般情况:类名的第一个字母为大写,第二个字母为小写,bean的id(名字)是该类的类名,但是类名的第一个字母要改为小写
特殊情况:类名的第一个字母和第二个字母都为大小,bean的id是该类的类名.
如果类名是一个字母,不管大小写,bean的id都是类名,并且第一个字母小写
使用方法注解(@Bean)不常用
【使用方法注解】 (是写在方法前的)
@Bean
@Bean 的作用:将方法返回的对象保存到Spring的容器中
注意:
- @Bean不能单独使用,要搭配5大类注解使用
- @bean方法注解只能用在无参的方法(Spring初始化存储时,无法提供相应的参数)
使用@bean方法注解将对象保存到Spring容器中,该bean对象的命名规则
【使用默认的命名规则】
以方法名为该bean对象的id名
【程序员可以直接设置bean对象的id名】
注意:如果程序员自己设置bean对象的id名,则bean对象默认的id名也就不能使用
<1>
@bean(name="id名字")
<2>
@Bean(value = "id名字"