首页 文章 精选 留言 我的

精选列表

搜索[企业级UI],共10000篇文章
优秀的个人博客,低调大师

企业级 SpringBoot 教程 -springboot集成spring cache

声明式缓存 Spring 定义 CacheManager 和 Cache 接口用来统一不同的缓存技术。例如 JCache、 EhCache、 Hazelcast、 Guava、 Redis 等。在使用 Spring 集成 Cache 的时候,我们需要注册实现的 CacheManager 的 Bean。 Spring Boot 为我们自动配置了 JcacheCacheConfiguration、 EhCacheCacheConfiguration、HazelcastCacheConfiguration、GuavaCacheConfiguration、RedisCacheConfiguration、SimpleCacheConfiguration 等。 默认使用 ConcurrenMapCacheManager 在我们不使用其他第三方缓存依赖的时候,springboot自动采用ConcurrenMapCacheManager作为缓存管理器。 环境依赖 在pom文件引入spring-boot-starter-cache环境依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId> </dependency> 创建一个book数据访问层 先创建一个实体类 public class Book { private String isbn; private String title; public Book(String isbn, String title) { this.isbn = isbn; this.title = title; } ….getter ….setter } 创建一个数据访问接口 public interface BookRepository { Book getByIsbn(String isbn); } 这个你可以写一个很复杂的数据查询操作,比如操作mysql、nosql等等。为了演示这个栗子,我只做了一下线程的延迟操作,当作是查询数据库的时间。 实现接口类: @Component public class SimpleBookRepository implements BookRepository { @Override public Book getByIsbn(String isbn) { simulateSlowService(); return new Book(isbn, "Some book"); } // Don't do this at home private void simulateSlowService() { try { long time = 3000L; Thread.sleep(time); } catch (InterruptedException e) { throw new IllegalStateException(e); } } } 测试类 @Component public class AppRunner implements CommandLineRunner { private static final Logger logger = LoggerFactory.getLogger(AppRunner.class); private final BookRepository bookRepository; public AppRunner(BookRepository bookRepository) { this.bookRepository = bookRepository; } @Override public void run(String... args) throws Exception { logger.info(".... Fetching books"); logger.info("isbn-1234 -->" + bookRepository.getByIsbn("isbn-1234")); logger.info("isbn-4567 -->" + bookRepository.getByIsbn("isbn-4567")); logger.info("isbn-1234 -->" + bookRepository.getByIsbn("isbn-1234")); logger.info("isbn-4567 -->" + bookRepository.getByIsbn("isbn-4567")); logger.info("isbn-1234 -->" + bookRepository.getByIsbn("isbn-1234")); logger.info("isbn-1234 -->" + bookRepository.getByIsbn("isbn-1234")); } } 启动程序,你会发现程序在控制台依次打印了: 2014-06-05 12:15:35.783 … : …. Fetching books 2014-06-05 12:15:40.783 … : isbn-1234 –> >Book{isbn=’isbn-1234’, title=’Some book’} 2014-06-05 12:15:43.784 … : isbn-1234 –>Book{isbn=’isbn-1234’, title=’Some book’} 2014-06-05 12:15:46.786 … : isbn-1234 –>Book{isbn=’isbn-1234’, title=’Some book’} 你会发现程序依次3s打印一行日志。这时还没开启缓存技术。 开启缓存技术 在程序的入口中加入@ EnableCaching开启缓存技术: @SpringBootApplication @EnableCaching public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } } 在需要缓存的地方加入@Cacheable注解,比如在getByIsbn()方法上加入@Cacheable(“books”),这个方法就开启了缓存策略,当缓存有这个数据的时候,会直接返回数据,不会等待去查询数据库。 这时再启动程序,你会发现程序打印 isbn-1234 –>Book{isbn=’isbn-1234’, title=’Some book’} 2017-04-23 18:17:09.479 INFO 8054 — [ main] forezp.AppRunner : isbn-4567 –>Book{isbn=’isbn-4567’, title=’Some book’} 2017-04-23 18:17:09.480 INFO 8054 — [ main] forezp.AppRunner : isbn-1234 –>Book{isbn=’isbn-1234’, title=’Some book’} 2017-04-23 18:17:09.480 INFO 8054 — [ main] forezp.AppRunner : isbn-4567 –>Book{isbn=’isbn-4567’, title=’Some book’} 2017-04-23 18:17:09.481 INFO 8054 — [ main] forezp.AppRunner : isbn-1234 –>Book{isbn=’isbn-1234’, title=’Some book’} 2017-04-23 18:17:09.481 INFO 8054 — [ main] forezp.AppRunner : isbn-1234 –>Book{isbn=’isbn-1234’, title=’Some book’} 只有打印前面2个数据,程序等了3s,之后的数据瞬间打印在控制台上了,这说明缓存起了作用。

优秀的个人博客,低调大师

企业级java代码生成器 MagicalCoder

原文地址:https://my.oschina.net/u/3321345/blog/2990160 引言:日常工作中难免会遇到各种增删改查功能,不管是后端各种复用的CRUDsql,还是界面的各种操作,都占据我们大量的时间 今天给大家带来的是一款基于JAVAFX编写的高定制化的代码生成器;下载地址 www.magicalcoder.com 摘要:我希望的代码生成器应该具备以下几点 1 高定制化,生成什么样的增删改查应该可控 2 支持各类数据库:主流数据库比如mysql oracle sqlserver postgresql要应该支持 3 最好能提供一个脚手架,一键生成,开箱即用 4 能够自定义模板,提供非常优秀的模板编辑,这样我可以根据公司的框架来定制模板 5 能够很好的帮我解决 生成的代码和人为代码出现冲突,以便我可以无限复用模板 6 软件要看起来强大,好用 7 最后能帮我解决前端界面布局问题 开篇: 一 高定制化 我们遇到很多的代码生成器,大部分都是嵌入到各个框架中,一键生成;比如我希望能配置下拉属性,日期类型,富文本类型等等 可控 我们希望连字段的校验最好也在生成器中配置 配置你的查询条件 当然也要支持外键 列表选项是否默认排序 使用起来方便 自由拖拽 二 数据库支持强大的数据库支持引擎 连接数据库后 自动加载各种表 库 三提供一个脚手架 提供了一个基于Springboot的脚手架供大家免费使用 四 能够自定义模板 很多人希望自己配置生成器,让模板生成的代码到对应的代码路径 最重要的是,当我们想编写代码时,要给我们提供一个很好的界面 高亮的模板编辑,环境变量和模板引擎标签突出高亮,基于velocity 非常方便的协助我们进行模板编写,编写玩只需要点击预览 立刻看到结果 五冲突合并 有了这个功能,我们还用操心因为加字段带来的烦恼吗?产品经理随便加字段;我们放心大胆的修改生成后的代码,下次照样重新生成代码。体验无限复用 六最后能帮我解决前端界面布局问题 前端布局再也不求人了,精通后端 但又希望能开发前端小伙伴最能体会。只要你会js,前端布局不成问题 一款layui布局器,让你随心所欲,自由拖拽布局 体验地址:http://layuiout.magicalcoder.com/ 结语 我们远没有结束,代码生成器还在持续开发中,只有想不到,没有做不到 ... 来体验一把吧,免费

优秀的个人博客,低调大师

CentOS搭建企业级PPTP服务器

第一个里程碑:检查系统是否支持ppp 1 2 [root@m01 ~] # cat /dev/ppp cat : /dev/ppp : No such device or address 如果出现以上提示则说明ppp是开启的,可以正常架设pptp服务,若出现Permission denied等其他提示,你需要先去VPS面板里看看有没有enable ppp的功能开关。 第二个里程碑:设置内核转发 1 2 3 4 5 6 7 8 9 10 11 [root@m01 ~] # grep forw /etc/sysctl.conf # Controls IP packet forwarding net.ipv4.ip_forward = 0 [root@m01 ~] # sed -i 's#net.ipv4.ip_forward = 0#net.ipv4.ip_forward = 1#g' /etc/sysctl.conf [root@m01 ~] # grep forw /etc/sysctl.conf # Controls IP packet forwarding net.ipv4.ip_forward = 1 [root@m01 ~] # sysctl -p 第三个里程碑:安装pptp 1 [root@m01 ~] # yum -y install pptpd 注意:pptp软件的安装需要依赖与epel源。 第四个里程碑:配置pptp 1 [root@m01 ~] # cp /etc/pptpd.conf{,.bak} #配置前对配置文件进行备份 [root@m01 ~]#egrep -v "^#|^$" /etc/pptpd.conf option /etc/ppp/options.pptpd logwtmp localip 10.0.0.61 remoteip 172.16.1.160-190 配置文件说明: localip 添加本机公网IP remoteip 分配VPN用户的内网网段 第五个里程碑:vpn连接的用户和密码 1 2 [root@m01 ~] # tail -1 /etc/ppp/chap-secrets vpn * vpn * 说明:第一个vpn为用户名,第二个vpn为密码,第一个* 为允许登陆主机允许,第二个*为分配给客户端的IP地址。 第六个里程碑:启动pptp服务,设置为开机自启动 1 2 3 4 5 [root@m01 ~] # /etc/init.d/pptpd start Starting pptpd: [ OK ] [root@m01 ~] # chkconfig |grep ppt pptpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off 第七个里程碑:windwos客户端测试 1 注意,在连接之前,将vpn设置中的ipv4 下的高级选项中进行修改,将勾选取消掉 在windows主机上测试ping内网地址 1 2 3 4 5 6 7 8 9 [f:\~]$ ping 172.16.1.8 正在 Ping 172.16.1.8 具有 32 字节的数据: 来自 172.16.1.8 的回复: 字节=32 时间=3ms TTL=63 来自 172.16.1.8 的回复: 字节=32 时间=3ms TTL=63 172.16.1.8 的 Ping 统计信息: 数据包: 已发送 = 1,已接收 = 1,丢失 = 0 (0% 丢失), 往返行程的估计时间(以毫秒为单位): 最短 = 2ms,最长 = 3ms,平均 = 2ms

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册