JAVA 注解

注解:

注解可以增强java代码,同时利用反射技术可以扩充实现很多功能,被广泛引用与三大框架的底层

注解的分类:

  • jdk自带注解

  • 元注解

  • 自定义注解

1、JDK的注解

JDK注解的注解(5个)

@Override//方法重写
@Deprecated  //标记就表明这个方法已经过时了,但我就要用,别提示我过期
@SuppressWarnings(“deprecation”) //忽略警告
@SafeVarargs //jdk1.7出现,堆污染,不常用
@FunctionallInterface //jdk1.8出现,配合函数式编程拉姆达表达式,不常用

2、元注解(5个)

用来描述注解的注解

@Target //注解用在哪里:类、方法、属性等
@Retention //注解的生命周期:源文件中、字节码文件中、运行中
@Inherited //允许子注解继承
@Documented //生成javadoc时会包含注解,不常用
@Repeatable  //注解为可重复类型注解,可以在同一个地方多次使用,不常用

SSM三大框架中使用的注解

@SpringBootApplication//是Spring Boot项目的核心注解,目的是开启自动配置

解决java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use

@SpringBootConfiguration

@SpringBootTest(classes = 启动类名.class) 

@MapperScan("cn.tedu.dao")//指定dao接口文件们所在的包
@RestController //作为mvc的c层,用来接收请求给出响应
@RequestMapping("stu")//规定了url的写法
@DateTimeFormat(pattern = "yyyy-MM-dd") //html网页上输入的是Stirng类型的,无法转成Date类型,会报错
@CrossOrigin //放行所有请求,解决跨域问题
@PathVariable //restful的方式请求参数
@Autowired //完成对象间的依赖关系spring  di;相当于底层帮你维护了两个对象间的关系:new Student().setTeacher(new Teacher())
@Autowired(required=true)://当使用@Autowired注解的时候,其实默认就是@Autowired(required=true),表示注入的时候,该bean必须存在,否则就会注入失败。
@Autowired(required=false)://表示忽略当前要注入的bean,如果有直接注入,没有跳过,不会报错。
@Component//spring的注解,用来IOC(new)
@Aspect //切面,右切点和通知组成
@Pointcut("execution( * cn.tedu.mvc..*.*(..))")//切点表达式:*表示1个 ..表示多个 *依次代表方法返回值,类名,方法名,(..)是参数列表----
                                               @Pointcut("execution(返回值 包名.类名.方法名(参数列表))")
@Around(“方法”)//添加环绕通知,在业务方法执行前后添加功能
@BeforeEach //再@Test执行前,重复代码,提取出来,提高代码的复用性
@Value //语法:${表达式内容}、利用Spel表达式,通过key,获取value,之后为属性赋值
@PropertySource("classpath:/")//spring指定文件的加载,将数据加载到容器中 
 看到PropertySources就写classpath:/
@Data  //动态生成get/set/toString····方法
@NoArgsConstructor  //无参构造
@AllArgsConstructor  //全参构造
@Accessors(chain = true)  //开启了链式加载(重写了set方法)
@SpringBootTest //启动时,可以自动注入spring容器中的任意对象,进行单元测试
//如果测试方法中添加了该注解,当执行@Test注解方法时,则Spring容器将会自动启动,
启动之后将所有依赖注入的信息完整构建,之后用户有针对性的挑选需要测试的代码
@Service //Service层中使用
@Repository //持久层使用的注解,一般不用,后期使用Mybatis代替
@Controller  //controller层中使用
@RestController  //表示对象实例化的注解,返回的都是json
@Mapper  //写在接口中,Spring为接口创建了一个代理对象
@MapperScan("com.jt.mapper")//SpringBoot为了简化代码,提供了包扫描机制,
为包路径下的接口创建代理对象,之后交给Spring容器管理,可以再任意位置依赖注入

@TableId(type = idType.AUTO)   //实体类上,主键自增

                                        AUTO ( 0 ), // 数据库 id 自增
                                        NONE ( 1 ), // 未设置主键
                                        INPUT ( 2 ), // 手动输入
                                        ID_WORKER ( 3 ), // 默认的全局唯一 id
                                        UUID ( 4 ), // 全局唯一 id uuid
                                        ID_WORKER_STR ( 5 ); //ID_WORKER 字符串表示法

@EqualsAndHashCode(callSuper = false/true) //这个注解的作用就是自动的给model bean实现equals方法和hashcode方法

@EqualsAndHashCode(callSuper = false) //不调用父类的属性,那么子类属性里面的相同的话,那hashcode的值就相同啦,equals方法的返回值是true

@EqualsAndHashCode(callSuper = true) //用自己的属性和从父类继承的属性 来生成hashcode,equals方法

的返回值是false

 @ApiModelProperty()  //注解用于方法、字段,表示对model属性的说明或者数据操作更改

                                    value:字段说明,
                                    name:重写属性名字,
                                    dataType:重写属性类型,
                                    required:是否必须,默认false,
                                    example:举例,
                                    hidden:隐藏。

 @ApiOperation(value = “接口说明”, httpMethod = “接口请求方式”, response =
“接口返回参数类型”, notes = “接口发布说明”;

 @DataSource //JDBC2.0 提供了javax.sql.DataSource接口,它负责建立与数据库的连接,当在应用程序中访问数据库时
不必编写连接数据库的代码,直接引用DataSource获取数据库的连接对象即可。用于获取操作数据Connection对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值