各类注解解析

作用

一、利用注解

隐式配置,例如:@Autowired、@Bean、@Component等,通过注解来简化xml文件。

利用Java文件
显示配置,比xml配置的优势是具备类型安全。

利用传统的xml配置文件。

二、注解(annotations)列表

1、springboot注解

@ResponseBody
用该注解修饰的函数,会将结果直接填充到HTTP的响应体中,一般用于构建RESTful的api;

@Controller
用于定义控制器类,在spring 项目中由控制器负责将用户发来的URL请求转发到对应的服务接口(service层)。
@RestController
@ResponseBody和@Controller的合集

@RequestMapping
提供路由信息,负责URL到Controller中的具体函数的映射。

@EnableAutoConfiguration
Spring Boot自动配置(auto-configuration):尝试根据你添加的jar依赖自动配置你的Spring应用。例如,如果你的classpath下存在HSQLDB,并且你没有手动配置任何数据库连接beans,那么我们将自动配置一个内存型(in-memory)数据库”。你可以将@EnableAutoConfiguration或者@SpringBootApplication注解添加到一个@Configuration类上来选择自动配置。如果发现应用了你不想要的特定自动配置类,你可以使@EnableAutoConfiguration注解的排除属性来禁用它们。

@ComponentScan
表示将该类自动发现(扫描)并注册为Bean,可以自动收集所有的Spring组件,包括@Configuration类。我们经常使用@ComponentScan注解搜索beans,并结合@Autowired注解导入。

@Configuration
相当于传统的xml配置文件,如果有些第三方库需要用到xml文件,建议仍然通过@Configuration类作为项目的配置主类 ——可以使用@ImportResource注解加载xml配置文件。

@SpringBootApplication
相当于@EnableAutoConfiguration、@ComponentScan和@Configuration的合集。

@Import
用来导入其他配置类。

@ImportResource
用来加载xml配置文件。

@Autowired
自动导入依赖的bean。

@Service
一般用于修饰service层的组件。

@Repository
使用@Repository注解可以确保DAO或者repositories提供异常转译,这个注解修饰的DAO或者repositories类会被ComponetScan。

2、log注解

@Slf4j
加上这个注解就可以少写:

private static final Logger logger = LoggerFactory.getLogger(XXX.class)

直接log.info 就可以

1)需要添加的maven依赖
<dependency>
           <groupId>org.projectlombok</groupId>
           <artifactId>lombok</artifactId>
           <version>1.16.10</version>
       </dependency>
       
       <dependency>
           <groupId>org.slf4j</groupId>
           <artifactId>slf4j-log4j12</artifactId>
           <version>1.7.28</version>
       </dependency>
2)需要配置log4j.properties
#Global logging configuration
log4j.rootLogger=ERROR, stdout
#MyBatis logging configuration...
log4j.logger.com.company=DEBUG
#Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

3、SwaggerConfig注解

@Api(tags = “xxxx”)
表示对类的说明

@ApiOperation(value=“xxx”,notes=“xxx”,httpMethod=“GET/POST”)
表示对方法的说明

@ApiModel
对实体类进行说明

@ApiModelProperty(value=“xxx”)
用在属性上,描述响应类的属性

需要导入的依赖
<dependency>
       <groupId>io.springfox</groupId>
       <artifactId>springfox-swagger2</artifactId>
       <version>2.2.2</version>
</dependency>
<dependency>
       <groupId>io.springfox</groupId>
       <artifactId>springfox-swagger-ui</artifactId>
       <version>2.2.2</version>
</dependency>
<dependency>
       <groupId>org.codehaus.jackson</groupId>
       <artifactId>jackson-core-asl</artifactId>
       <version>1.9.13</version>
</dependency>
2) 配置类
package com.example.demo.config;
@Configuration
@EnableSwagger2
public class SwaggerConfig {
   private ApiInfo apiInfo() {
       return new ApiInfoBuilder().title("API接口文档")
               .description("用户信息管理")
               .version("1.0.0")
               .build();
   }
   @Bean
   public Docket createRestApi() {
       return new Docket(DocumentationType.SWAGGER_2)
               .apiInfo(apiInfo())
               .select()
               .apis(RequestHandlerSelectors.basePackage("com.example.demo.controller")) //这里写的是API接口所在的包位置
               .paths(PathSelectors.any())
               .build();
   }
}

访问地址 :http://localhost:8080/swagger-ui.html

4、@Data注解

可以减少实体类 get set的方法

@Data
提供类的get、set、equals、hashCode、toString等方法

@AllArgsConstructor
提供全参构造

@NoArgsConstructor
提供无参构造

5、@ConfigurationProperties注解

获取yml中的配置信息

  1. 在application.yml 中配置
    ceshi:
    aaa: “sasa”
  2. 应用
    @Data
    @ConfigurationProperties(prefix = “ceshi”)
    public class test(){
    public String aaa
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值