SpringBootDemo
大约 1 分钟
SpringBootDemo
根据条件创建bean的注解👻
@ConditionalOnProperty💒
@ConditionalOnProperty(value = "spring.cloud.discovery.enabled", matchIfMissing = true)
public @interface ConditionalOnDiscoveryEnabled {
//在指定的类上添加,可以限制类的bean创建。
//value 配置yml文件中的属性名
//matchIfMissing 设置值,默认为false及默认不创建bean
}
@ConditionalOnMissingBean🌅
- 装有该注解的方法或者类上,只有在spring容器中不存在时则创建
@ConditionalOnBean🌟
- 当指定的类的bean在spring容器中存在时则创建
- @ConditionalOnBean(SpringClientFactory.class)
@AutoConfigureAfter🐔
- 在指定的类创建bean之后在启动别的类的自动配置 @AutoConfigureAfter(RibbonAutoConfiguration.class)
@ConditionalOnClass🍊
- 检查指定的类是否存在,存在则创建该注解下的bean
- @ConditionalOnClass(Endpoint.class)
@Conditional🍊
- 检查指定的类是否存在,存在则创建该注解下的bean
- @Conditional(OnAvailableEndpointCondition.class)
@AutoConfigureBefore😎
- 在当前bean创建之前创建之前配置其他bean``
- @AutoConfigureBefore({ SimpleDiscoveryClientAutoConfiguration.class, CommonsClientAutoConfiguration.class })
双MQ控制时间差🍎
内部系统mq
- 推送给A系统1秒一次
- A系统推送给第三方系统5秒一次
模拟A系统1秒执行一次,并且每5秒打印一次
package com.demo.Timer;
import java.util.Timer;
import java.util.TimerTask;
/**
* @author lc
* @since 2022/6/6
*/
public class Main {
public static void main(String[] args) {
Timer timer = new Timer();
long startTime = System.currentTimeMillis();
timer.schedule(new TimerTask() {
@Override
public void run() {
long endTime = System.currentTimeMillis();
long time = (endTime - startTime) / 1000;
System.out.println(time);
if (time % 5 == 0) {
System.out.println("Hello World");
}
}
}, 1000, 1000);
}
}
文件上传🚩
package com.demo.controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
/**
* @author lc
* @since 2022/6/29
*/
@RestController
@RequestMapping("/file")
public class FileController {
@PostMapping("uploadFile")
public String SystemFile(MultipartFile file) {
String fileName = file.getOriginalFilename();
try {
if (fileName == null){
return "文件名为空";
}
File f = new File(fileName);
file.transferTo(f);
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException("上传失败");
}
return "上传成功";
}
}