博客
关于我
SSM框架常用注解分享
阅读量:685 次
发布时间:2019-03-17

本文共 2973 字,大约阅读时间需要 9 分钟。

Spring MVC框架常用注解分享

在Spring MVC开发中,注解是配置控制器和实现业务逻辑的核心工具。本文将为你详细介绍Spring MVC框架中常用的注解及其使用场景。

1. @Controller

@controller注解用于标注Spring MVC的控制器类。虽然@controller本身只是一个标记符,但真正处理请求的核心逻辑需要使用@RequestMapping注解的方法。使用@controller可以让Spring知道这是一个控制器类,而@RequestMapping则指定了控制器类处理哪些请求。

使用@controller的主要步骤:
  • 在Spring MVC的配置文件中定义一个@controller注解的bean对象类。
  • 在配置文件中启用组件扫描,告诉Spring找出所有标记了@controller的控制器类。
  • 如果多个包需要扫描,可以用逗号分隔包路径:
  • 2. @RequestMapping

    @RequestMapping注解用于定义 HTTP 请求的映射关系,常用于控制器类或方法上,以指定处理请求的具体地址和方法。它支持多种定义方式,主要包括:

    • value 属性:指定请求的实际地址,支持URI模板。例如:
      @RequestMapping(value = "/admin/sys/log")
    • method 属性:指定支持的HTTP方法,如 GET、POST 等。
    • consumes 和 produces 属性:定义接收和返回的内容类型。
    • params 和 headers 属性:定义请求参数和头信息,方便后台处理。
    举例:
    @Controller@RequestMapping("/admin/sys/log")public class LogController extends BaseController {    @Autowired    private LogService logService;    @RequestMapping(method = RequestMethod.GET)    public String listLogs() {        return "log/list";    }}

    3. @Resource 和 @Autowired

    @resource和@Autowired都是用于注入Spring管理的Bean。在字段或Setter方法上标注其中任意一个即可,两者结合使用会导致Autowired失效。两者主要的区别在于:

    • @Autowired默认按类型注入。
    • @Resource默认按名字注入。
    示例:
    public class TestServiceImpl {    @Autowired    private UserDao userDao; // 只注入字段即可    public void setUserDao(UserDao userDao) { // 可与字段结合使用        this.userDao = userDao;    }}

    4. @PathVariable

    @pathvariable用于将URL中的模板变量提取到方法参数中。例如:

    @RequestMapping(value = "/user/{id}")public String getUserById(@PathVariable String id) {    // 根据id查询用户}

    5. @RequestParam

    @RequestParam用于在Controller中获取请求参数,可以设置参数的默认值、是否必填等属性。例如:

    @RequestMapping(params = "id")public String getUserId(@RequestParam(required = false, defaultValue = "0") String id) {    // 获取用户信息}

    6. @ResponseBody

    @ResponseBody注解用于将Controller方法返回的数据直接写入HTTP response body中。适用于返回非HTML格式的数据,如JSON、XML等。例如:

    @RequestMapping(value = "/api/data", method = RequestMethod.GET)@ResponseBodypublic List
    getData() { return dataService.getData();}

    7. @Repository

    @repository注解用于标注DAO层类,主要用于Spring数据组件的使用。例如:

    @Repositorypublic class ActMyBusinessDao extends BaseHibernateDao
    { public Class getEntityClass() { return ActMyBusiness.class; }}

    8. @ModelAttribute 和 @SessionAttributes

    @modelattribute用于将模型属性映射到Controller方法中,而@sessionattributes则用于将这些属性存储在Session中,以便跨请求访问。例如:

    @Controller@RequestMapping(method = RequestMethod.GET)@SessionAttributes(value = "currUser")public String showPage(ModelMap model) {    model.addAttribute("currUser", userService.getCurrentUser());    return "index";}

    9. @Service

    @Service注解用于标注Spring的服务组件,用于管理业务逻辑和数据访问。例如:

    @Servicepublic class BbtForumService {    // 定义业务逻辑方法}

    10. 单独注解(@GetMapping、@PostMapping等)

    @GetMapping和@PostMapping是对@RequestMapping方法的扩展,简化配置。例如:

    • @GetMapping("/admin/dashboard") 等价于 @RequestMapping(method = RequestMethod.GET, value = "/admin/dashboard")
    • @PostMapping可以使用不同的HTTP方法

    11. @Transactional

    @Transactional注解用于标注需要使用事务管理的方法或类。它会自动管理数据库事务,用于保证操作的原子性和一致性。

    通过以上注解的合理使用,可以显著提升Spring MVC应用的开发效率和代码可读性。每个注解都有特定的使用场景,正确的使用可以帮助开发者更轻松地构建高效的Web应用。

    转载地址:http://kyehz.baihongyu.com/

    你可能感兴趣的文章
    HTML 表单验证
    查看>>
    爬虫代理http协议的请求
    查看>>
    mysql时间为0000-00-00 00:00:00时,程序读取错误
    查看>>
    ubuntu System program problem detected
    查看>>
    使用ivx图表组件的经验总结
    查看>>
    17场演讲,500+嘉宾 |「观远2020智能决策峰会暨产品发布会」看点先知道
    查看>>
    专访汇付数据副总裁姜靖宇:“纸上谈兵”时代终结,人工智能将变革第三方支付行业
    查看>>
    张小龙的“败走麦城”
    查看>>
    小程序的生命周期
    查看>>
    Redis学习笔记—单个键管理
    查看>>
    多线程基础部分
    查看>>
    Java学习记录之ArrayList集合
    查看>>
    PHP之配置开发环境
    查看>>
    Shiro 的身份认证
    查看>>
    什么是信道编码?信道编码比较
    查看>>
    wordpress架站踩坑过程
    查看>>
    一个简单的游戏框架[汇总]
    查看>>
    NSNotification、delegate和KVO的区别
    查看>>
    Rhino简介
    查看>>
    防止用户重复提交表单的处理方法
    查看>>