经验整理-10-注解汇总-100-@

**java中常用的注解分三类:
1.JDK注解
2.Java第三方注解:spring、spring、springboot
3.自定义注解**

JDK注解

1、@Resource
详解
@Resource注解与@Autowired注解作用非常相似
@Resource的装配顺序:
(1)、@Resource后面没有任何内容,默认通过name属性去匹配bean,找不到再按type去匹配
(2)、指定了name或者type则根据指定的类型去匹配bean
(3)、指定了name和type则根据指定的name和type去匹配bean,任何一个不匹配都将报错
@Autowired和@Resource两个注解的区别:
(1)、@Autowired默认按照byType方式进行bean匹配(适合单例,多实例报错,巧记,spring推荐单例自动注入),@Resource默认按照byName方式进行bean匹配(适合多实例按名称注入)
(2)、@Autowired是Spring的注解,@Resource是J2EE的注解,这个看一下导入注解的时候这两个注解的包名就一清二楚了
Spring属于第三方的,J2EE是Java自己的东西,因此,建议使用@Resource注解,以减少代码和Spring之间的耦合。

1、共同点
两者都可以写在字段和setter方法上。两者如果都写在字段上,那么就不需要再写setter方法。

2、不同点
(1)@Autowired
@Autowired为Spring提供的注解,需要导入包org.springframework.beans.factory.annotation.Autowired;只按照byType注入



-----------Java第三方注解-----


spring注解


@Configuration把一个类作为一个IoC容器,它的某个方法头上如果注册
@Bean,就会作为这个Spring容器中的Bean。
@Scope注解 作用域
@Lazy(true) 表示延迟初始化
@Service用于标注业务层组件、
@Controller用于标注控制层组件(如struts中的action)
@Repository用于标注数据访问组件,即DAO组件。
@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进- 行标注。
@Scope用于指定scope作用域的(用在类上)
@Autowired 默认按类型装配,如果我们想使用按名称装配,可以结合@Qualifier注解一起使用。如下:
@Autowired @Qualifier(“personDaoBean”) 存在多个实例配合使用
@PostConstruct 初始化注解。构造方法之后,init之前
@PreDestroy destroy方法之后,实例
@Async异步方法调用



springboot注解


@SpringBootApplication:包含了@ComponentScan、@Configuration和@EnableAutoConfiguration注解。其中@ComponentScan让spring Boot扫描到Configuration类并把它加入到程序上下文。

@Configuration 等同于spring的XML配置文件;使用Java代码可以检查类型安全。

@EnableAutoConfiguration 自动配置。

@ComponentScan 组件扫描,可自动发现和装配一些Bean。

@Component可配合CommandLineRunner使用,在程序启动后执行一些基础任务。

扫描二维码关注公众号,回复: 9181775 查看本文章

@RestController注解是@Controller和@ResponseBody的合集,表示这是个控制器bean,并且是将函数的返回值直 接填入HTTP响应体中,是REST风格的控制器。

@Autowired自动导入。

@PathVariable获取参数。

@JsonBackReference解决嵌套外链问题。

@RepositoryRestResourcepublic配合spring-boot-starter-data-rest使用。

@ResponseBody:表示该方法的返回结果直接写入HTTP response body中,一般在异步获取数据时使用,用于构建RESTful的api。在使用@RequestMapping后,返回值通常解析为跳转路径,加上@responsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body中。比如异步获取json数据,加上@responsebody后,会直接返回json数据。该注解一般会配合@RequestMapping一起使用。

@RestController:用于标注控制层组件(如struts中的action),@ResponseBody和@Controller的合集。

@ComponentScan:表示将该类自动发现扫描组件。

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

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

@Autowired:自动导入依赖的bean

@Value:注入Spring boot application.properties配置的属性的值。

hibernate注解


@Entity:将pojo类标记成实体,可以指定一个name属性,指定实体类的名称
@Table:注释改持久化类所映射的表
@UniqueConstraints:用于数据表的唯一约束 columnNames属性
@Index用于数据库建立索引
@DynamicInsert:指定用于插入记录的insert语句是否在运行时动态生成。并且只插入那些非空字段。默认值时false
@DynamicUpdate:指定用于更新巨鹿的update语句是否在运行是时动态生成,并且只更新那些修改过的字段,默认值是否false
@SelectBeforeUpdate:制动Hbiernate在更新某个持久化对象之前是否进行一次select(建议false)
@NotBlank只能作用在String上,不能为null,而且调用trim()后,长度必须大于0

#swagger2注解

@Api()用于类; 表示标识这个类是swagger的资源
@ApiOperation()用于方法; 表示一个http请求的操作
@ApiParam()用于方法,参数,字段说明;表示对参数的添加元数据(说明或是否必填等)
@ApiModel()用于类 表示对类进行说明,用于参数用实体类接收
@ApiModelProperty()用于方法,字段;表示对model属性的说明或者数据操作更改
@ApiIgnore()用于类,方法,方法参数 ;表示这个方法或者类被忽略
@ApiImplicitParam() 用于方法 ;表示单独的请求参数
@ApiImplicitParams() 用于方法,包含多个 @ApiImplicitParam
Mybaits注解
@Select 简单查询
@Insert 简单插入
@Update 简单更新
@Delete 简单删除
@Param : 入参
@Results : 结果集合
@Result : 结果

lombok整理


@Data 注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法
@Setter :注解在属性上;为属性提供 setting 方法
@Setter :注解在属性上;为属性提供 getting 方法
@Log4j :注解在类上;为类提供一个 属性名为log 的 log4j 日志对象
@NoArgsConstructor :注解在类上;为类提供一个无参的构造方法
@AllArgsConstructor :注解在类上;为类提供一个全参的构造方法
@Cleanup : 可以关闭流
@Builder : 被注解的类加个构造者模式
@Synchronized : 加个同步锁
@SneakyThrows : 等同于try/catch 捕获异常
@NonNull : 如果给参数加个这个注解 参数为null会抛出空指针异常
@Value : 注解和@Data类似,区别在于它会把所有成员变量默认定义为private final修饰,并且不会生成set方法
@ToString:无需启动调试器即可查看您的字段,注解会自动重写对应的toStirng方法

发布了39 篇原创文章 · 获赞 0 · 访问量 780

猜你喜欢

转载自blog.csdn.net/qq_15458763/article/details/103918183