项目开发中经常需要执行一些定时任务,比如需要在每天凌晨时候,分析一次前一天的日志信息.Spring为我们提供了异步执行任务调度的方式,提供TaskExecutor .TaskScheduler 接口. SpringBoot中使用两个注解:@EnableScheduling.@Scheduled来简单实现定时任务. @Scheduled参数详解 1. cron 该参数接收一个cron表达式,cron表达式是一个字符串,字符串以5或6个空格隔开,分开共6或7个域,每一个域代表一个含义. cron表达…
springboot中的常用注解个人觉得springboor中常用的注解主要可以分为三种:放入容器型注解.从容器中取出型注解和功能型注解.其中的放入容器型和从容器中取出型就是我们平时所说的控制反转和依赖注入的概念(个人版本- - - 可以看一看,别太当真 0.0) 放入容器型注解简介:个人觉得就是申明一个实例对象,然后将这个对象交给spring管理. 1.@Component:放在类上,把普通类实例化到spring容器中.可以说很多注解都是基于这个注解的. 2.@Bean: 放在方法上,用@Be…
springboot中的controller注解没有生效  , 启动的Application类没有在controller的父目录或同级目录…
Springboot中mybatis执行逻辑源码分析 在上一篇springboot整合mybatis源码分析已经讲了我们的Mapper接口,userMapper是通过MapperProxy实现的一个动态代理,所有调用userMapper的方法,最终都会代理到MapperProxy的invoke方法上,我们这次就来看看mybatis具体的执行流程.为了简单易懂,本次的示例用的是最简单的查询语句且不包含事务. 本篇文档的源码路径https://github.com/wbo112/blogdemo/t…
目前了解的springboot中IOC注解主要分为两类: 1. 注册bean:@Component和@Repository.@Service.@Controller .@Configuration 共同之处:这些注解都使用在类上,将类标识为Bean,由Spring扫描到后会生成一个单例bean放到容器中. 不同之处在于: @Component是一个泛化的概念,仅仅表示一个组件 (Bean) ,可以作用在任何层: @Repository.@Service.@Controller 都包含@Compo…
前言 思路与模拟业务 源码地址 https://gitee.com/houzheng1216/springboot 整体思路就是通过注解在策略类上指定约定好的type,项目启动之后将所有有注解的type获取到,根据type存储,然后在业务中根据type获取对应的策略即可 模拟订单业务,根据订单的type,需要不同的处理逻辑,比如,免费订单,半价订单等,下面是项目结构: 一 策略接口和实现 /** * 处理订单策略 */ public interface OrderStrategy { void…
1.首先在service层中的方法前添加@Transactional @Service public class UserService { @Autowired private UserMapper userMapper; public List<User> queryAll(){ System.out.println("热部署"); return userMapper.findAll(); } @Transactional public void deleteById(…
执行网络操作是耗时操作,即便是在service中也要放到子线程中执行 这里我用到了async-http-client框架来执行异步请求操作 计时用的java原生Timer和TimerTask类 本来这两者分开操作各没有问题 但是如果把异步操作写到TimerTask的run方法里就会出错 E/AndroidRuntime(5799): java.lang.IllegalArgumentException: Synchronous ResponseHandler used in AsyncHttpC…
想要实现的功能: 我想在配置文件中设置一个开关,enabled,在开关为true的时候才实例化bean,进行相关业务逻辑的操作. 具体实现: 1:要实例化的bean 2. 配置类 代码: 想要实例化的bean:在这个类上不要加@Component注解 public class OrderMessageMonitor { public OrderMessageMonitor(ConfigContext configContext) { -- } public doSomeThing() { } }…
现在项目中用到需要定时去检查文件是否更新的功能.timer正好用于此处. 用法很简单,new一个timer,然后写一个timertask的子类即可. 代码如下: package comz.autoupdatefile; import java.util.Timer; import java.util.TimerTask; public class M { public static void main(String[] args) { // TODO todo.generated by zoer…