springboot 注解

目录

@EnableAutoConfiguration——标注在启动类上(不推荐)

@ComponentScan——包扫描注解

@SpringBootApplication——标注在启动类上的组合注解(推荐)

@RestController——restful风格conller类

@Transactional——声明式事务管理

@ControllerAdvice——全局异常处理类

@ExceptionHandler——标注为异常处理方法

@Async——标注在具体方法上,被调用时开启线程任务

@EnableAsync——开启多线程

@Value("${url}")——获取自定义参数

@MapperScan——Dao层自动生成实现类

@EnableScheduling——开启定时任务

@Scheduled——标注在方法上,自动执行被标注的方法

@EnableCaching——开启缓存机制

@Cacheable——开启缓存的方法


  • @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)放在操作缓存的方法上,接口

补充中~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值