SpringBoot项目注解集合文档

4 篇文章 0 订阅
1 篇文章 0 订阅

1. Application启动类上:

@MapperScan(basePackages={"csdn**dao"}):【作用在Spring主程序,是指定要变成实现类的接口所在的包,然后包下面的所有接口在编译之后都会生成相应的实现类。括号内同时可以添加多个包。】

@SpringbootApplication():等同于@SpringbootConfiguration【表示的是该类会作为Springboot的一个配置类;等同于spring的XML配置文件】 + @EnableAutoConfiguration【开启自动配置功能】 + @ComponentScan【让spring Boot扫描到Configuration类并把它加入到程序上下文。可自动发现和装配一些Bean】三个配置。

@EnableDiscoveryClin:【1、可以获取服务信息;2、用于向eureka,consul或者zookeeper等作为注册中心的时候提供注册服务,让注册中心能够发现扫描到该服务。】

@EnableAsync:【启用Spring的异步方法执行功能;在方法上标注@Async注解,使得该方法进行异步执行,加入线程池运行】

@EnableScheduling:【在类上开启对定时任务的支持;在方法上用@Scheduled来申明这是一个任务】

@ImportResource(classpath:csdn.xml):【用于导入Spring的配置文件,让该配置文件中定义的bean对象加载到Spring容器中】

@ServletComponentScan:【作用:Servlet、Filter、Listener 可以直接通过 @WebServlet、@WebFilter、@WebListener 注解自动注册】

@EnableDubbo:【整合了三个注解@EnableDubboConfig、@DubboComponentScan、@EnableDubboLifecycle。整合了这三个注解】

2. Controller层下:

类上:

@Slf4j:【日志输出logger.info("");加入Lombok插件,pom文件加入依赖。省略自己private final Logger logger = LoggerFactory.getLogger(CSDN.class)】

@Controller:【后端控制器,与前端交互】

@ResponseBody:【将返回的结果解析为josn写入HTTP response body中;修饰类,修饰方法都可】

@Restcontroller:【相当于@ResponseBody+@Controller;视图解析器无法解析和返回jsp、html页面;适合所有方法返回值都是json数据】

@RequestMapping(value="/csdn/xxx"):【RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。】

@Api(value="/csdn",tags="博客"):【属于swagger里的注解;用在请求的类上,表示对类的说明:@ApiOperation(value = “接口说明”, httpMethod = “接口请求方式”, response =“接口返回参数类型”, notes = “接口发布说明”);其他参数可参考源码;】

@ControllerAdviceweb:【是Controller增强器,作用是给Controller控制器添加统一的操作或处理。	1.结合@ExceptionHandler即可实现全局异常捕获		2.搭配@ModelAttribute注解可以做数据绑定,在到达控制器前,将属性放入modelMap中,可以通过name属性指定数据在map中的key,如果不指定的话,有相同返回类型会产生覆盖,建议每个都通过name参数指定key】

类中:

@Resource()
@Autowired
@Value("${csdn}")

方法上:

@PostMapping(Value="csdn")
@ResponseBody
@RequestMapping(value="/csdn/xxx")
@ApiOperation(value="",notes=""@Monitor(serviceName="",serviceCode="")
@InitBinder()
web端异常处理(@ResponsBody@ExceptionHandler) 

方法中:

@PathVariable:
@RequestParam:
@RequestBody:【表示方法接收参数类型为 :json形式的 】
@ApiParam(name="",value="")

3. interface接口:

接口上:
@Repository

@Mapper(componentModel="spring"):作用在接口类上添加了@Mapper,在编译之后会生成相应的接口实现类;如果想要每个接口都要变成实现类,那么需要在每个接口类上加上@Mapper注解,比较麻烦,解决这个问题用@MapperScan

@Target(ElementType.CSDN):【作用:指定注解的作用目标范围,一般用于自定义注解接口上;@Target(ElementType.TYPE)——接口、类、枚举、注解 ElementType.FIELD——字段、枚举的常量;ElementType.METHOD——方法;ElementType.PARAMETER——方法参数;ElementType.LOCAL_VARIABLE——局部变量;ElementType.ANNOTATION_TYPE——注解;ElementType.PACKAGE——包】

@Retention(RetentionPolicy.RUNTIME):【作用:注解的保留位置;当前这种类型将被JVM保留,所以他们能在运行时被JVM或其他使用反射机制的代码所读取和使用】

方法中:
@param

4. ServiceImpl层下:

类上:

@Service("csdn")
@Component("csdn")

类中

@Resource
@Autowired
@Vakue("${csdn}")

方法上

@Override
@Transactionl(rollackFor=csdn.class)

5. DAO层:

DTO类:

类上:

@Accessors(chain=true)
@Data :(使用Lombok插件)等于@Getter + @Setter +  @ToString + @EqualsAndHashCode + @RequiredArgsConstructor
@ApiModel

枚举类:

@AllArgsConstructor>:【lombok注解使用后添加一个构造函数,该构造函数含有所有已声明字段属性参数】

方法上:

@ApiModelProperty(value="csdn")

属性上:

@JSONField(alternateNames={"csdn","csdn"})
@XstreamAias(value="csdn"):【XStream是Java类库,使用XStream,我们可以把Java对象转换成XML,也可以将XML转换为Java对象。】

6. Util工具类

类上:
@UtilityClass:一般作用于工具类上。在使用@UtilityClass注解后,所有的方法和属性都会被加上static关键字,并且该类会创建一个私有的空参构造器。

@Scheduled:用于定时任务Spring提供。[详细描述](https://www.jb51.net/article/201373.htm)
			1.(@Schedule注解的一个缺点:就是其定时时间不能动态更改,它适用于具有固定任务周期的任务,若要修改任务执行周期,只能走“停服务→修改任务执行周期→重启服务”这条路。)   
			2.(使用@Scheduled注意事项:		①.spring的注解@Scheduled 需要写在实现方法上;		②.定时器的任务方法不能有返回值(如果有返回值,spring初始化的时候会告诉你有个错误、需要设定一个proxytargetclass的某个值为true),不能指向任何的参数;		③.如果该方法需要与应用程序上下文的其他对象进行交互,通常是通过依赖注入来实现;		④.实现类上要有组件的注解@Component。)


7. Config配置以及组件类

类上:
@Configuration

@RefreshScope;【用来实现配置、实例热加载,即当配置变更时可以在不重启应用的前提下刷新bean中相关的属性值】

@EnableWebMvc

@EnableCaching
@EnableSwagger2

@EnableRedisHttpSession:【开启Session 共享功能拦截请求,将之前在服务器内存中进行 Session 创建销毁的动作,改成在 Redis 中创建】

方法上:
@Bean
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值