springboot学习笔记二
来源:互联网 发布:上海大学乐乎 编辑:程序博客网 时间:2024/05/16 15:11
Enable*与import
package da.test2;import org.springframework.boot.SpringApplication;import org.springframework.boot.context.properties.EnableConfigurationProperties;import org.springframework.context.ConfigurableApplicationContext;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.Import;import org.springframework.scheduling.annotation.EnableAsync;/** * @EnableConfigurationProperties 开启一个特性,这个特性可以把配置文件的属性注入到bean里面,一般与@ConfigurationProperties一起用 * * @EnableAsync 启用异步,一般与@Async一起用 * * @Import 可以导入一个或者多个类,或者配置类 */@EnableAsync@EnableConfigurationProperties@Import(ImportTest.class)@ComponentScanpublic class Springboot01Application2 { public static void main(String[] args) { ConfigurableApplicationContext context = SpringApplication.run(Springboot01Application2.class, args); System.out.println(context.getBean(User.class)); context.getBean(Runnable.class).run(); // context.getBean(AsyncTest.class).run(); 不知道为什么这样写会找不到这个类 System.out.println("------end-----"); System.out.println(context.getBean(ImportTest.class)); context.close(); }}
package da.test2;import java.util.concurrent.TimeUnit;import org.springframework.scheduling.annotation.Async;import org.springframework.stereotype.Component;@Componentpublic class AsyncTest implements Runnable { @Async public void run() { try { for (int i = 1; i <= 3; i++) { TimeUnit.SECONDS.sleep(1); System.out.println("=================" + i); } } catch (Exception e) { e.printStackTrace(); } }}
事件监听
package da.test3;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.context.ConfigurableApplicationContext;/** * 1.自定义事件:一般都是继承ApplicationEvent类 * * 2.自定义监听器:一般都是实现ApplicationListener接口 * * 3.启动的时候要把监听器加入到spring容器中 * * 3.还可以通过application.properties配置监听器 * * 4.发布事件:使用ApplicationContext.publishEvent发布需求 * */@SpringBootApplicationpublic class Springboot01Application3 { public static void main(String[] args) { SpringApplication app = new SpringApplication(Springboot01Application3.class); //app.addListeners(new MyApplicationListener()); ConfigurableApplicationContext context = app.run(args); context.publishEvent(new MyApplicationEvent(new Object())); context.close(); }}
事件类与监听类
package da.test3;import org.springframework.context.ApplicationEvent;public class MyApplicationEvent extends ApplicationEvent { private static final long serialVersionUID = 1L; public MyApplicationEvent(Object source) { super(source); }}
package da.test3;import org.springframework.context.ApplicationListener;public class MyApplicationListener implements ApplicationListener<MyApplicationEvent> { @Override public void onApplicationEvent(MyApplicationEvent arg0) { System.out.println("已经接收到事件:" + arg0.getClass()); }}
在配置文件中注册监听
#注册监听器context.listener.classes=da.test3.MyApplicationListener
其他
package da.test4;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.context.ConfigurableApplicationContext;/** * @SpringBootApplication 中可以定义以哪个地方为基类来扫描,也可以定义不扫描哪个类或者哪个包 */@SpringBootApplicationpublic class Springboot01Application4 { public static void main(String[] args) { SpringApplication app = new SpringApplication(Springboot01Application4.class);// app.setBannerMode(Banner.Mode.OFF); 关闭banner banner:不显示spring那个logo ConfigurableApplicationContext context = app.run(args); context.close(); }}
banner: 在src/main/resources下直接放置banner.txt或者banner.jpg/banner.png/banner.gif 启动动画会改变
在application.properties中也能指定banner的名字与位置:
banner.image.location=my.jpg
阅读全文
1 0
- springboot学习笔记二
- Springboot学习笔记(二)
- SpringBoot学习笔记二
- springboot学习笔记(二) Thymeleaf
- SpringBoot学习笔记(二) 依赖管理
- springboot 学习笔记(二)--- properties 配置
- springboot 学习笔记(二)--- properties 配置
- springboot学习笔记(二)日志配置
- SpringBoot学习篇二
- springBoot 学习(二)
- SpringBoot学习(二)
- SpringBoot学习(二)
- springboot学习--《二》
- springboot学习--《二》
- springboot学习笔记(二):基于MySql数据库的JDBC操作
- SpringBoot学习笔记(二):静态资源的处理
- Springboot学习笔记(二)devtools热部署
- SpringBoot学习笔记(二):YAML在SpringBoot的作用和机制
- 一图看懂计算机视觉识别简史
- go语言中的并发处理
- eclipse初步学习笔记(快捷键 运行调试 junit测试框架)
- 一道笔试题(python)
- 链表基本操作及其过程详细叙述
- springboot学习笔记二
- Creating lmdb... ./create_cifar10.sh: 12: ./create_cifar10.sh: ./build/examples/cifar10/convert_cifa
- Redis复制,Sentinel的搭建和原理说明
- 6个方法帮交互设计师与上下游顺畅合作
- 广度优先搜索
- LeetCode-44-Wildcard Matching DP
- 模式识别读书笔记1 基于贝叶斯决策理论的分类器
- Mako脚本
- Redis、SSDB、Memcache和MongoDB的区别