那些你必须知道的常用注解

本文详细解析了Spring框架中常用注解的功能与使用方法,包括@Controller、@RequestMapping、@Resource、@Autowired、@Qualifier、@PathVariable、@RequestParam、@ResponseBody、@Repository、@Service、@Component等,帮助读者深入理解Spring的依赖注入与控制反转。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

@Controller :定义一个控制器类(注入服务)
用于标注控制层,相当于struts中的action层
@RequestMapping:请求映射
@Resource:Spring会直接将UserDao类型的唯一一个bean赋值给userDao这个成员变量
@Autowired:Spring会调用setUserDao方法来将UserDao类型的唯一一个bean装配到userDao这个属性
使用Spring时,通过Spring注入的Bean一般都被定义成private,并且要有getter和setter方法,显得比较繁琐,增加了代码量,使用@Autowired可以减少代码量

public class TestServiceImpl {

    // 下面两种@Autowired只要使用一种即可

    @Autowired

    private UserDao userDao; // 用于字段上

    @Autowired

    public void setUserDao(UserDao userDao) { // 用于属性的方法上

        this.userDao = userDao;

    }

}

@Qualifier:@Autowired是根据类型进行自动装配的。如果当Spring上下文中存在多个UserDao类型的bean时,就会抛出BeanCreationException异常;如果Spring上下文中不存在UserDao类型的bean,也会抛出BeanCreationException异常。我们可以使用@Qualifier配合@Autowired来解决这些问题

@PathVariable:将请求URL中的模板变量映射到功能处理方法的参数上,即取出uri模板中的变量作为参数

@requestParam :主要用于在SpringMVC后台控制层获取参数

@ResponseBody:(配合Controller使用)该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,入到Response对象的body数据区

@Repository :应用在导层,在daoImpl类上面注解

@Param():叁数与对应xml里的#{}里的内容一致,可以给参数自定义名字

@Service:(注入dao)
用于标注服务层,主要用来进行业务的逻辑处理
首先,在applicationContext.xml文件中加一行:

<context:component-scan base-package="com.ai"/> 

加上这一行以后,将自动扫描路径com.ai下面的包,如果一个类带了@Service注解,将自动注册到Spring容器,不需要再在applicationContext.xml文件定义bean了,类似的还包括@Component、@Repository、@Controller。

@repository(实现dao访问)
用于标注数据访问层,也可以说用于标注数据访问组件,即DAO组件
.

@component (把普通pojo实例化到spring容器中,相当于配置文件中的 < bean id="" class=""/> )

@Data:去除Getter,Setter,equals,hashCode,toString方法

@Reference:将远程服务的service注入该属性中

@RestController:包含了@controller和@responsebody等注解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值