文章目录
1、启动类注解
a、@EnableJpaAuditing
@EnableJpaAuditing --> Spring JPA 注解
1、这个注解的作用是实现审计功能
2、使用方法:
- 实体类上添加 @EntityListeners(AuditingEntityListener.class)
- 在需要的字段上加上 @CreatedDate、@CreatedBy、@LastModifiedDate、@LastModifiedBy 等注解。
- @CreateDate
表示该字段为创建时间时间字段,在这个实体被 insert 的时候,会设置默认值 - @CreatedBy
表示该字段为创建人,在这个实体被insert的时候,会设置值。 - @LastModifiedDate、@LastModifiedBy同理**。
- @CreateDate
- 在Xxx Application 启动类上添加 @EnableJpaAuditing
- 实现 AuditorAware 接口来返回你需要插入的值。重点!
3、详细了解及使用
4、扩展 Option 类
-
java 8 引入,可以解决空指针异常问题,使代码编写更加简洁。
-
Option的使用
-
创建实例,
- 这个类型的对象可能包内含值,也可能为空。
@Test(expected = NoSuchElementException.class) public void whenCreateEmptyOptional_thenNull() { Optional<User> emptyOpt = Optional.empty(); emptyOpt.get(); }
毫不奇怪,尝试访问 emptyOpt 变量的值会导致 NoSuchElementException。
-
你还可以通过of() 和 ofNullable()创建,他们两者的区别在于:如果你把null值作为参数传递进去of()会抛出 NullPointException
@Test(expected = NullPointerException.class) public void whenCreateOfEmptyOptional_thenNullPointerException() { Optional<User> opt = Optional.of(user); }
如果对象可能是null,也可能是非null,建议使用ofNullable()方法
-
访问Option的值
- 取值问题
@Test public void whenCreateOfNullableOptional_thenOk() { String name = "John"; Optional<String> opt = Optional.ofNullable(name); assertEquals("John", opt.get()); //判断是否相等,值为null时,会中断抛出异常。 }
-
b、@EnableScheduling
@EnableScheduling --> 定时任务
1、使用方法
-
要在任务的类上写@Component
-
要在任务方法上写@Scheduled
-
可以在方法上使用一些定时方法
-
//表示方法执行完成后5秒 --》 在任务完成后,也会执行多次 @Scheduled(fixedDelay = 5000)
-
//表示每隔3秒 --》 可以执行多次 @Scheduled(fixedRate = 3000)
-
//表示每天8时30分0秒执行 @Scheduled(cron = "0 0,30 0,8 ? * ? ")
-
c、@EnableAsync
@EnableAsync --> 可以使用多线程
- @Async加在线程任务的方法上(需要异步执行的任务),定义一个线程任务,通过spring提供的ThreadPoolTaskExecutor就可以使用线程池 .
- 使用前首先要定义配置类详情参考 @Async注解
d、@EnableJpaRepositories
@EnableJpaRepositories --> 发现实体,发现包
- 用于发现和使用Entity 和 Reopsitory ,用于取代xml形式的配置文件,可以简单理解为注入。
- 详细参考及使用规则