目录
@EnableAutoConfiguration——标注在启动类上(不推荐)
@SpringBootApplication——标注在启动类上的组合注解(推荐)
@RestController——restful风格conller类
-
@EnableAutoConfiguration——标注在启动类上(不推荐)
(1)springboot 程序启动入口类标识
-
@ComponentScan——包扫描注解
(1)@ComponentScan(basePackages="springboot")
(2)扫描项目 @Component,@Repository,@Service,@Controller等注解
(3)(basePackages="springboot") 填写,controller类的全路径。
-
@SpringBootApplication——标注在启动类上的组合注解(推荐)
(1)启动类注解,这个是一个组合注解。可以直接代替@EnableAutoConfiguration、@ComponentScan注解
并且该注解可以自动扫描子类包。项目结构如下
-
//项目启动类 @SpringBootApplication public class App { public static void main(String[] args) { SpringApplication.run(App.class, args); } }
-
@RestController——restful风格conller类
(1)标注在controller类上面,当浏览器端发送请求。例如 127.0.0.1:8080/hello,那么springboot就会拿着 /hello 去找标注有 @RestController的类,去找 @RequestMapping("/hello") 修饰的方法(或者 @GetMapping("/hello")@PostMapping("/hello") 的方法)
(2)将方法的返回值,转化为json格式的数据
(3)如果是进行视图跳转,请使用 @Controller
特别说明:使用了该接口,就不会有视图跳转。只是用作接口调用,返回json数据格式。我目前公司就是微服务项目,前后端分离。所以每一个接口只需要把返回值规定好,前端调用接口做相应的页面处理即可。后台完全不关心前端的问题,只专注于接口的提供。
-
@Transactional——声明式事务管理
(1)开始事务管理,当代码出现异常数据库会自动回滚。不需要手动操作。
(2)尽量放在对数据库数据直接操作单的方法上,不要放在类上面。避免对不必要的方法进行事务管理。
-
@ControllerAdvice——全局异常处理类
(1)全局异常捕获:当代码出现异常,springboot会自动跳到被@ControllerAdvice注解的类(在类上注解)
(2)注意此时,@ControllerAdvice不在具有@RestController功能,需要给具体处理异常的方法加上@ResponseBody 返回json格式数据。(按需求,添加注解。不加就返回试图了。)
-
@ExceptionHandler——标注为异常处理方法
(1)@ExceptionHandler(RuntimeException.class),里面是触发条件。这里为运行时异常
(2)处理异常的注解,将此注解放在。处理异常的方法上,并标注 处理何种异常!这里处理的是运行时异常RuntimeException.class。
-
@Async——标注在具体方法上,被调用时开启线程任务
(1)开启多线程,将该注解放在需要执行异步方法上,主动开启线程。
(2)配合@EnableAsync使用
-
@EnableAsync——开启多线程
(1)放在启动类上,标注需要开启多线程应用
-
@Value("${url}")——获取自定义参数
(1)获取自定义参数
(2)使用方法
配置文件application.properties里面配置好
url = https://www.baidu.com
在使用的类里面 直接引用
@Value("${url}")
private String url;
实战案例:测试环境和线上环境我要指定请求连接是不一样的。那么我就需要定义不同的url在配置文件application中。
-
@MapperScan——Dao层自动生成实现类
(1)@MapperScan(basePackages="com.springboot.dao")
(2)使得接口类会生成相应的接口实现类,直接放在启动类上对存放接口的包扫描
这样做的目的就是省略在每一个接口类上写@Mapper来标识
-
@EnableScheduling——开启定时任务
(1)开启定时任务,放在启动类上。实时监控你的定时任务了
-
@Scheduled——标注在方法上,自动执行被标注的方法
(1)@Scheduled(cron = "*/6 * * * * ?")
(2)@Scheduled(fixedRate = 6000)
效果图:
代码:
1.启动类
@SpringBootApplication//组合注解、装配、初始容器、扫包
@EnableAsync//开启多线程
@EnableScheduling//开启定时任务
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
2.定时任务
@Component//加载到spring容器
public class SchedulerTask {
private int count = 0;
private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
@Scheduled(cron = "*/6 * * * * ?")//标注为定时任务6s执行一次
private void process() {
System.out.println("这是自动累加的定时任务: " + (count++));
}
@Scheduled(fixedRate = 6000)//标注为定时任务6s执行一次
public void reportCurrentTime() {
System.out.println("这是自动显示当前时间的定时任务:" + dateFormat.format(new Date()));
}
}
@EnableCaching——开启缓存机制
(1)标注在启动类上,开启缓存机制
@Cacheable——开启缓存的方法
(1)放在操作缓存的方法上,接口
补充中~