iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >Java Spring的JavaConfig注解是怎样的
  • 544
分享到

Java Spring的JavaConfig注解是怎样的

2024-04-02 19:04:59 544人浏览 泡泡鱼
摘要

本篇文章给大家分享的是有关Java spring的JavaConfig注解是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。序传统spri

本篇文章给大家分享的是有关Java spring的JavaConfig注解是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

传统spring一般都是基于xml配置的,不过后来新增了许多JavaConfig的注解。特别是SpringBoot,基本都是清一色的java config,不了解一下,还真是不适应。这里备注一下。

@RestController

spring4为了更方便的支持restfull应用的开发,新增了RestController的注解,比Controller注解多的功能就是给底下的RequestMapping方法默认都加上ResponseBody注解,省得自己再去每个去添加该注解。

@Configuration

这个标注该类是spring的配置类,本身自带Component注解

@ImportResource

对应的xml

<import resource="applicationContext-ehcache.xml"/>

存在的必要性

这个是兼容传统xml配置的,毕竟JavaConfig还不是***的,比如 JavaConfig不能很好地支持aop:advisor和tx:advice , Introduce @EnableAspectJAutoProxy (equivalent to aop:aspectj-autoproxy) , Introduce @Configuration-based equivalent to aop:config XML element

@ComponentScan

对应的xml

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

该配置自动包含了如下配置的功能:

<context:annotation-config/>

就是向Spring容器注册AutowiredAnnotationBeanPostProcessor( 使用@Autowired必须注册  )、CommonAnnotationBeanPostProcessor( 使用@Resource  、@PostConstruct、@PreDestroy等必须注册  )、PersistenceAnnotationBeanPostProcessor( 使用@PersistenceContext必须注册 )  以及RequiredAnnotationBeanPostProcessor( 使用@Required必须注册  )这4个BeanPostProcessor。

值得注意的是 Spring3.1RC2版本 是不允许注解Configuration的类在ComponentScan指定的包范围内的,否则会报错。

@Bean

对应的xml如下:

<bean id="objectMapper" class="org.codehaus.jackson.map.ObjectMapper" />

@EnableWebMvc

对应的xml如下:

<mvc:annotation-driven />

该配置自动注册DefaultAnnotationHandlerMapping( 来注册handler  method和request的mapping关系 )与AnnotationMethodHandlerAdapter( 在实际调用handler  method前对其参数进行处理 )两个bean,以支持@Controller注解的使用。

主要的作用如下:

  • 可配置的ConversionService(方便进行自定义类型转换)

  • 支持用@NumberFORMat格式化数字类型字段

  • 支持用@DateTimeFormat格式化Date,Calendar以及Joda Time字段( 如果classpath有Joda Time的话 )

  • 支持@Valid的参数校验( 如果jsR-303相关provider有在classpath的话 )

  • 支持@RequestBody/@ResponseBody注解的XML读写( 如果JAXB在classpath的话 )

  • 支持@RequestBody/@ResponseBody注解的JSON读写( 如果Jackson在classpath的话 )

@ContextConfiguration

主要在junit测试时指定java config

@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration({     "classpath*:spring/*.xml",     "classpath:applicationContext.xml",     "classpath:applicationContext-RabbitMQ.xml",     "classpath:applicationContext-mail.xml",     "classpath:applicationContext-medis.xml",     "classpath:applicationContext-mybatis.xml"}) @TransactionConfiguration(transactionManager = "mybatisTransactionManager", defaultRollback = false) public class AppBaseTest {    //...... }

@ResponseStatus

主要是rest开发用,注解返回的Http返回码,具体值看org.springframework.http.httpstatus枚举。一般 post方法返回HttpStatus.CREATED,DELETE和PUT方法返回HttpStatus.OK。还可以配置异常处理,见 @ExceptionHandler和@ControllerAdvice

@ExceptionHandler

主要用来处理指定的异常,返回返回指定的HTTP状态码,省得每个controller的方法自己去try catch。一般可以为每个应用定义一个异常基类,然后再定义业务异常,这样这里就可以统一捕获业务异常。

@ExceptionHandler(BizException.class)  @ResponseStatus(HttpStatus.BAD_REQUEST)  public @ResponseBody  ReturnMessage bizExceptionHandler(Exception ex) {      logger.error(ex.getMessage(),ex);      return new ReturnMessage(HttpStatus.BAD_REQUEST.value(),ex.getMessage());  }

不过值得注意的是这种方法仅限于controller的方法调用链产生的异常,如果在spring里头还使用了定时任务啥的,该注解是不会拦截到的。

@ControllerAdvice

配合@ExceptionHandler使用的,用来拦截controller的方法。

@ControllerAdvice public class ErrorController {      private static final Logger logger = LoggerFactory.getLogger(ErrorController.class);      @ExceptionHandler(BizException.class)     @ResponseStatus(HttpStatus.BAD_REQUEST)     public @ResponseBody     ReturnMessage bizExceptionHandler(Exception ex) {         logger.error(ex.getMessage(),ex);         return new ReturnMessage(HttpStatus.BAD_REQUEST.value(),ex.getMessage());     }      @ExceptionHandler(Exception.class)     @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)     public @ResponseBody     ReturnMessage serverExceptionHandler(Exception ex) {         logger.error(ex.getMessage(),ex);         return new ReturnMessage(HttpStatus.INTERNAL_SERVER_ERROR.value(),ex.getMessage());     } }

以上就是Java Spring的JavaConfig注解是怎样的,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网node.js频道。

--结束END--

本文标题: Java Spring的JavaConfig注解是怎样的

本文链接: https://www.lsjlt.com/news/84561.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java Spring的JavaConfig注解是怎样的
    本篇文章给大家分享的是有关Java Spring的JavaConfig注解是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。序传统spri...
    99+
    2024-04-02
  • Java 8中重复注解是怎样的
    Java 8中重复注解是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 什么是重复注解允许在同一申明类型(类,属性,或方法)的多次使用同一个注解一个简单的例...
    99+
    2023-06-17
  • Spring实战之XML与JavaConfig的混合配置详解
    前言之前提到了关于Spring的显示配置方式有两种,一种是基于XML配置,一种是基于JavaConfig的方式配置。对于这两种配置方式并不是互斥关系,相反,他们两能够相互融合,有效的搭配完成Spring的bean注入。这里分别介绍如何在Ja...
    99+
    2023-05-31
    spring javaconfig xml
  • spring是怎么处理注解的
    Spring框架是一个基于注解的框架,它可以处理各种注解来实现不同的功能。下面是Spring框架处理注解的一般过程:1. 扫描注解:...
    99+
    2023-08-18
    spring
  • Java注解及Spring的@Autowired是如何实现的
    这篇文章主要介绍“Java注解及Spring的@Autowired是如何实现的”,在日常操作中,相信很多人在Java注解及Spring的@Autowired是如何实现的问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家...
    99+
    2023-06-20
  • 怎样解读Java Spring AOP
    本篇文章为大家展示了怎样解读Java Spring AOP,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、对AOP的初印象首先先给出一段比较专业的术语(来自百度):在软件业,A...
    99+
    2023-06-21
  • 理解Java注解及Spring的@Autowired是如何实现的
    首先我们可以自己写一个注解: @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @in...
    99+
    2024-04-02
  • Java Spring中各依赖注入注解的区别是什么
    本篇文章给大家分享的是有关Java Spring中各依赖注入注解的区别是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Spring对于Be...
    99+
    2024-04-02
  • javascript注释是怎样的
    JavaScript是一种广泛使用的程序设计语言,用于为网页添加动态效果和交互性。注释是一种在编程中很重要的工具,它可以帮助程序员更好地理解和组织代码。在JavaScript中,有两种类型的注释:单行注释和多行注释。单行注释以“//”开头,...
    99+
    2023-05-14
  • Java Spring的使用注解开发详解
    目录使用注解开发1.bean2.属性如何注入3.衍生的注解4.自动装配5.作用域6.小结代码show1.新建一个模块:2.新建pojo包及类3.新建dao包及类4.新建service...
    99+
    2024-04-02
  • Java Spring之基于注解的AOP怎么配置
    本篇内容主要讲解“Java Spring之基于注解的AOP怎么配置”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java Spring之基于注解的AOP怎么配置”吧!1 环境搭建1.1 第一步:...
    99+
    2023-07-05
  • Spring Boot HikariCP的配置是怎样的
    Spring Boot HikariCP的配置是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一:必要配置二:常用配置三:非常用配置看完上述内容,你们掌握Spring B...
    99+
    2023-06-05
  • Java拦截器以及自定义注解的使用是怎么样的
    Java拦截器以及自定义注解的使用是怎么样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1,设置预处理,设置不需要拦截的请求@Componentpublic cla...
    99+
    2023-06-22
  • Spring的注解怎么使用
    这篇“Spring的注解怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Spring的注解怎么使用”文章吧。非全注解开...
    99+
    2023-06-29
  • Java 图解Spring启动时的后置处理器工作流程是怎样的
    探究Spring的后置处理器 本次我们主要探究invokeBeanFactoryPostProcessors();后面的代码下次再做解析; 入口代码refresh() Annot...
    99+
    2024-04-02
  • Spring AOP的执行顺序是怎样的
    本篇内容介绍了“Spring AOP的执行顺序是怎样的”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!问题描...
    99+
    2024-04-02
  • Spring获取Bean的过程是怎样的
    这篇文章主要讲解了“Spring获取Bean的过程是怎样的”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spring获取Bean的过程是怎样的”吧!原型Bean加载过程之前的文章,分析了非懒...
    99+
    2023-06-02
  • Spring中的 @SessionAttributes注解怎么理解
    这篇文章将为大家详细讲解有关Spring中的 @SessionAttributes注解怎么理解,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。@ModelAttribute注解作用在方法上或者...
    99+
    2023-06-02
  • Spring的@Bean注解怎么使用
    今天小编给大家分享一下Spring的@Bean注解怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Spring @Be...
    99+
    2023-07-02
  • Java是怎样产生的
    这期内容当中小编将会给大家带来有关Java是怎样产生的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Java是由James Gosling,Patrick Naughton,Chris Warth,Ed ...
    99+
    2023-06-03
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作