APO核心概念 Spring AOP 常用注解 @EnableAspectJAutoProxy:开启AspectJ的支持。 @Aspect:当前类是一个切面。(需要配合@Component) @Pointcut: @Before:Advice在Join Point之前执行。 @After :不管成功或失败,只要结束就会执行。 @AfterReturning :在成功return之后执行。 @AfterThrowing :在失败return之后执行。 @Around:环绕通知。前+后 @Order:用于指定切面的执行顺序。数值越小,优先级越高。 如何打印SQL HikariCP 自身没有输出SQL的能力,需要借助P6Spy。 <dependency> <groupId>p6spy</groupId> <artifactId>p6spy</artifactId> <version>3.8.1</version> </dependency> Alibaba Druid 内置 SQL ....
Reactive Programming 响应式编程是一种面向数据流和变化传播的编程范式。这意味着可以在编程语言中很方便地表达静态或动态的数据流,而相关的计算模型会自动将变化的值通过数据流进行传播。 # 传统模式下编程:a 的值在执行后被确定。 a = b + c # 响应式编程 a 的值随着 b、c 值的变化而变化。 Project Reactor Reactor是由 Pivotal 团队开发的,第四代Reactive库,用于根据Reactive Streams规范在JVM上构建非阻塞应用程序。 核心的概念 Operators - Publisher / Subscriber Nothing Happens Util You subscribe() Flux [ 0..N ] - onNext()、onComplete()、onError() Mono [ 0..1 ] - onNext()、onComplete()、onError() Backpressure Subscription onRequest()、onCancel()、onDispose() 线程调度 S....
Spring 对 Redis 的支持 Redis 是 ⼀款开源的内存 KV 存储,⽀持多种数据结构。 Spring 对 Redis 的支持是通过 Spring Data Redis 项目。 Jedis / Lettuce RedisTemplate Repository Reference Docker 启动 Redis 容器 Reference # 拉取image docker pull redis # 启动 Redis docker run -p 6379:6379 --name myredis -d redis # 设置密码添加 --requirepass 参数 docker run -p 6379:6379 --name myredis -d redis --requirepass "123456" Jedis 客户端 Jedis 不是线程安全的:无法在多个线程之间共享同一个 Jedis 实例。 通过 JedisPool 获得 Jedis 实例 直接使用 Jedis 中的方法 引入依赖 <?xml version="1.0" encoding="UTF-8....
常见数据库分类 ClassificationName Key-ValueRedis、Memcached DocumentMongoDB、CouchDB ColumnarHBase、Cassandra GraphNeo4J Docker部署MongoDB # 拉取image [root@master ~]# docker pull mongo [root@master ~]# docker images | grep mongo mongo latest a0e2e64ac939 3 weeks ago 64MB # 创建本地挂载目录 [root@master ~]# mkdir /data/mongodb -pv # 创建容器 [root@master ~]# docker run --name mongo -v /data/mongod:/data/db -p 27017:27017 -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=123456 -d mongo 0503c6157ef3b....
简介 一个没事儿喜欢捣鼓代码的码农。 爱犬 Leon(里昂) 关于写作 发表期刊 文章 发刊日期 汴梁晚报 回到大宋东京,开启一场穿越时空的文化之旅 2024-08-31 开封文化(开封日报社旗下新媒体) 来吧,一起穿越宋朝 2024-09-02 汴梁晚报 我和里昂 2024-09-07 开封日报 月饼市场变化彰显消费趋势 2024-09-19 汴梁晚报 胡辣汤里的乡愁 2024-10-12 汴梁晚报 城墙外的乡愁 2024-11-09
对象与关系的范式不匹配 Hibernate ⼀款开源的对象关系映射(Object / Relational Mapping)框架 将开发者从 95% 的常 ⻅数据持久化 ⼯作中解放出来 屏蔽了底层数据库的各种细节 2006 年,Hibernate 3.2 成为 JPA 实现 Reference Java Persistence API JPA1.0 是作为 JSR 220 的一部分正式发布。 简化数据持久化代码的开发工作 为 Java 社区屏蔽不同持久化 API 的差异(屏蔽了 Hibernate、JDO、EJB 之间的差异) 相当于在 O/R Mapping 框架之前做了一层抽象。 Spring Data 在保留底层存储特性的同时,提供相对 ⼀致的、基于 Spring 的编程模型。Spring Family List : Spring Data Commons Spring Data JDBC Spring Data JPA Spring Data Redis …… 如何引入 Spring Data JPA <dependency> <groupI....
Java Config 相关注解 @Configuration:标注当前类是一个配置类。 @ImportResource:注入配置以外的xml文件的信息。 @ComponentScan:告诉Spring容器可以去扫描哪些package下的Bean。 @Bean:作用于方法上,它的返回值将作为一个Bean存在于ApplicationContext当中。 @ConfigurationProperties:用于绑定配置properites文件中的信息。 Bean的定义相关的注解 @Component / @Repository / @Service : 语义划分组件层次。 @Controller / @RestController:标注Bean为Web层的Bean。 @RequestMapping:方法与URL进行绑定。 Bean注入相关注解 @Autowired :按类型查找上下文中的Bean,并且完成注入。如果上下文中存在多个同类型的Bean,则会产生歧义性,需要搭配@Qualifier @Qualifier :用来声明注入Bean的名字。 @Resource :与@Autow....