文章来源:http://www.tuicool.com/articles/bQnMra

 

在Spring Boot中几乎可以完全弃用xml配置文件,本文的主题是分析常用的注解。

Spring最开始是为了解决EJB等大型企业框架对应用程序的侵入性,因此大量依靠配置文件来“非侵入式”得给POJO增加功能,然而,从Spring 3.x开始,Spring被外界最为诟病的一点就是配置繁多,号称“配置地狱”,各种xml文件,出了问题非常难排查。从Spring 4.x开始,Spring.io提供了三种方式编织Bean:

  • 利用注解:隐式配置,例如:@Autowired、@Bean、@Component等,通过注解来简化xml文件。
  • 利用Java文件:显示配置,比xml配置的优势是具备类型安全
  • 利用传统的xml配置文件

注解(annotations)列表

    1. @ResponseBody 
      用该注解修饰的函数,会将结果直接填充到HTTP的响应体中,一般用于构建RESTful的api;
    2. @Controller 
      用于定义控制器类,在spring 项目中由控制器负责将用户发来的URL请求转发到对应的服务接口(service层)。
    3. @RestController 
      @ResponseBody和@Controller的合集
    4. @RequestMapping 
      提供路由信息,负责URL到Controller中的具体函数的映射。
    5. @EnableAutoConfiguration 
      Spring Boot自动配置(auto-configuration):尝试根据你添加的jar依赖自动配置你的Spring应用。例如,如果你的classpath下存在HSQLDB,并且你没有手动配置任何数据库连接beans,那么我们将自动配置一个内存型(in-memory)数据库”。你可以将@EnableAutoConfiguration或者@SpringBootApplication注解添加到一个@Configuration类上来选择自动配置。如果发现应用了你不想要的特定自动配置类,你可以使用@EnableAutoConfiguration注解的排除属性来禁用它们。例子代码如下:
    6. @ComponentScan 
      表示将该类自动发现(扫描)并注册为Bean,可以自动收集所有的Spring组件,包括@Configuration类。我们经常使用@ComponentScan注解搜索beans,并结合@Autowired注解导入。
    7. @Configuration 
      相当于传统的xml配置文件,如果有些第三方库需要用到xml文件,建议仍然通过@Configuration类作为项目的配置主类——可以使用@ImportResource注解加载xml配置文件。
    8. @SpringBootApplication 
      相当于@EnableAutoConfiguration、@ComponentScan和@Configuration的合集。
    9. @Import 
      用来导入其他配置类。
    10. @ImportResource 
      用来加载xml配置文件。
    11. @Autowired 
      自动导入依赖的bean
    12. @Service 
      一般用于修饰service层的组件
    13. @Repository 
      使用@Repository注解可以确保DAO或者repositories提供异常转译,这个注解修饰的DAO或者repositories类会被ComponetScan发现并配置,同时也不需要为它们提供XML配置项。
posted on 2016-09-13 23:10  沐浴春风  阅读(2380)  评论(0编辑  收藏  举报