@Repository、@Service、@Controller、@Component和@Mapper等

Bean管理指的是两个操作:
1、Spring创建对象
2、Spring注入属性
有两种实现方式,分别是基于xml配置文件实现方式和基于注解方式实现。常通过注解的形式进行管理,简化xml配置

什么是注解?
(1)注解是代码特殊标记,格式:@注解名称(属性名称=属性值,属性名称=属性值)
(2)注解作用在类、方法、属性上面
(3)目的:简化xml配置

Spring针对Bean管理中创建对象提供注解?

@Component或@Bean: 提供的一种普通的组件注解,使用它都可以创建对象,常用在配置类
@Service:一般用在service层的实现类上
@Controller或@RestController:一般用在Controller层上,一般使用@RestController,配合@RequestMapping进行使用
@Repository或@Mapper: 一般用在持久层,也就是dao层,进行数据库的处理,一般使用@Mapper

例:通过@Component(value=“对象名”),如果不写value值,默认为类名称首字母小写。

@Component, @Service, @Controller, @Repository是spring注解,注解后可以被spring框架所扫描并注入到spring容器来进行管理
@Component是通用注解,其他三个注解是这个注解的拓展,并且具有了特定的功能
@Repository注解在持久层中,具有将数据库操作抛出的原生异常翻译转化为spring的持久层异常的功能。
@Controller层是spring-mvc的注解,具有将请求进行转发,重定向的功能。
@Service层是业务逻辑层注解,这个注解只是标注该类处于业务逻辑层。
用这些注解对应用进行分层之后,就能将请求处理,义务逻辑处理,数据库操作处理分离出来,为代码解耦,也方便了以后项目的维护和开发
@Component就是跟<bean>一样,可以托管到Spring容器进行管理。
 
@Service, @Controller , @Repository = {@Component + 一些特定的功能}。这个就意味着这些注解在部分功能上是一样的。

@Repository注解可以标记在任何的类上,用来表明该类是用来执行与数据库相关的操作(即dao对象),并支持自动处理数据库操作产生的异常

@Repository 支持持久层作为一个标记可以去自动处理数据库操作产生的异常(译者注:因为原生的java操作数据库所产生的异常只定义了几种,但是产生数据库异常的原因却有很多种,这样对于数据库操作的报错排查造成了一定的影响;而Spring拓展了原生的持久层异常,针对不同的产生原因有了更多的异常进行描述。所以,在注解了@Repository的类上如果数据库操作中抛出了异常,就能对其进行处理,转而抛出的是翻译后的spring专属数据库异常,方便我们对异常进行排查处理)

@Mapper和@Repository的相同点

两者都是作用在dao上

@Mapper和@Repository的不同点

@Repository需要在Spring中配置扫描地址,然后生成Dao层的Bean才能被注入到Service层中:如下,在启动类中配置扫描地址:

@SpringBootApplication   //添加启动类注解
@MapperScan("com.anson.dao")  //配置mapper扫描地址
public class application
{
    public static   void main(String[] args)
    {
        SpringApplication.run(application.class,args);
    }
}

@Mapper不需要配置扫描地址,通过xml里面的namespace里面的接口地址,生成了Bean后注入到Service层中。

也就是@Repository多了一个配置扫描地址的步骤;

基于注解实现属性注入?

(1)@AutoWired:根据属性类型进行自动装配(重要)@Autowired的对象是通过接口进行注入。
第一步:把service和dao对象创建,在类中添加对象注解
第二步:在service中要注入dao对象,定义dao类型属性,在属性上面使用注解
(2)@Qualifier:根据属性名称进行注入
(3)@Resource:可以根据类型或者名称注入
(4)@Value:注入普通类型属性

配置类

@Configuration是Spring的注解,不是SpringBoot的!早在Spring框架的时候就有使用,但是由于那个时候配置文件还是比较流行,因此@Configuration注解并没有太盛行,甚至很多人就认为它是SpringBoot的注解。

@Configuration注解的作用:声明一个类为配置类,用于取代bean.xml配置文件注册bean对象。

@Configuration注解常常一起搭配使用的注解有@Bean、@Scope、@Lazy三个比较常见.
@Bean:等价于Spring中的bean标签用于注册bean对象的,内部有一些初始化、销毁的属性…

在配置类中声明配置的bean,在Spring中相当于注册到xml配置文件中,系统运行时就会加载
在这里插入图片描述

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值