Jboot是一款功能强大、简单专业的微服务框架,主要功能是帮助开发者降低微服务开发门槛、提高微服务开发效率的开发辅助工具,该框架同时完美支持在idea、eclipse下多maven 模块操作,可以对java、html、css、js等资源文件进行热加载,可以快速高效、轻松便捷的进行微服务开发;Jboot体积轻量、占用系统空间不大,下载即可进行使用,使用该框架用户可以直接在数据库内进行极简调用,在分布式下载可以进行多任务分布式进行统一配置,让用户可以轻轻松松进行微服务快捷开发,感兴趣的用户赶快下载试试吧。
在 RPC 下,Jboot 支持了 RPC 下的 熔断、降级、监控、Opentracing等等功能
在分布式下,Jboot 支持了分布式缓存、分布式Session、分布式锁、分布式任务、统一配置中心
在数据库下,Jboot 支持分库分表、支持 Reids 等nosql数据库的极简调用
在 MQ 下,Jboot 支持 rabbitmq、redismq、zbus 甚至还支持了 阿里云的商业MQ
Jboot还支持了Swagger、Event事件机制、高并发下的限流方案等等更多的惊喜
1、基于 JFinal 的 MVC + ORM 快速开发。
2、基于 ShardingSphere + Seata 分布式事务 和 分库分表。
3、基于 Dubbo 或 Motan 的 RPC 实现
4、基于 Sentinel 的分布式限流和降级
5、基于 Apollo 和 Nacos 的分布式配置中心
6、基于 EhCache 和 Redis 的分布式二级缓存
创建项目
#通过 IntelliJ IDEA 创建项目
IntelliJ IDEA 下载地址:https://www.jetbrains.com/idea/ ,下载完成后完成后开始安装,安装过程略。
第一步:打开 IntelliJ IDEA 创建 maven 项目,如下图:
第二步:填写 maven 项目的 GroupId、ArtifactId 和 Version
GroupId 一般是包名,用来做项目的唯一标识
ArtifactId 一般是项目名
Version 是项目的版本
第三步:填写 项目存储路径
创建完毕后,我们会看到如下图所示,注意点击 Enable Auto-Import.
#通过 Eclipse 创建项目
略,和 通过 IntelliJ IDEA 创建项目 基本相同。
#Maven 依赖
通过 以上步骤建立项目后,我们会在项目目录下找到 pom.xml 文件,这个文件是 maven 的核心文件,maven 是通过 pom.xml 对项目进行依赖配置和管理的。
我们需要在 pom.xml 里添加对 Jboot 的依赖配置,如下代码:
io.jboot
jboot
3.8.1
如下图所示:
#Hello World
一般情况下,对一个新项目的了解是从 Hello World 开始的,因此,我们需要通过 Jboot 来写一个 Hello World 程序。
这个 Hello World 的需求是:
通过编写代码,我们在浏览器访问后输出 “Hello World Jboot” 的文字内容。
通过以上步骤,我们创建好了项目、添加好了 jboot 的maven依赖,接下来我们需要来创建一个叫 IndexController 的java文件
IndexController 的代码如下:
以上代码需要注意以下几点:
IndexController 需要继承 JbootController 或者 Controller
需要添加 @RequestMapping("/") 请求映射配置
通过编写 index() 方法来接收请求,并向浏览器输出 "Hello World Jboot" , 此处注意:必须叫 index() 不能修改名字,后续会讲到其原理。
通过运行 IndexController 的 main() 方法,我们可以看到如下的日志输出:
我们看到最后一行日志的内容是:
server started success , url : http://127.0.0.1:8080/
此时我们通过浏览器访问:http://127.0.0.1:8080 , 就可以看到如下内容:
#链接数据库
在 Java Web 开发中,几乎 99% 以上的项目都需要和数据库打交道,因此,了解 Jboot 如何连接数据成为了必须。
通过 Jboot 连接数据库只需要做两步:
创建 jboot.properties 配置文件
在 jboot.properties 添加数据库连接信息
第一步:在项目的resource目录下创建 jboot.properties 文件,此时,项目的目录结构应该如下:
第二步:在 jboot.properties 文件添加如下数据库信息:
jboot.datasource.type:配置的是数据库的类型,目前 Jboot 支持的数据库类型有:Mysql 、Oracle 、SqlServer 、Postgresql 、Sqlite 和 其他标准的数据库。
jboot.datasource.url: 配置的是数据库的连接信息
jboot.datasource.user: 配置的是数据库的连接账号
jboot.datasource.password: 配置的是数据库的连接密码,没有密码可以留空
通过配置完毕后,Jboot就已经有了访问数据库的能力,我们可以在 IndexController 写一个 dbtest() 方法,来测试下 Jboot 的数据库访问能力,代码如下:
注意:以上代码能够正式运行的前提是:
你本地安装好mysql数据库,并创建好库 jbootdemo ,因为数据库的连接url是:jdbc:mysql://127.0.0.1:3306/jbootdemo
jbootdemo 下要有数据表 user,因为 sql 查询内容是:select * from user
例如:作者本地数据库的内容如下:
运行 IndexController 的 main() 方法,并访问 http://127.0.0.1:8080/dbtest,会看到如下内容所示:
此时,证明 Jboot 已经能够准确访问数据库。
#使用代码生成器
Jboot 内置了一个简易的代码生成器,通过代码生成器运行,Jboot帮开发者生成每个数据库表对应 java 的 model 实体类,同时可以生成带有增、删、改、查基本数据库操作能力的 service 层代码。
在使用 Jboot 代码生成器之前,我们需要在 jboot.properties 配置好数据库的连接信息(以上内容已经提到)。并编写任意名字带有main()方法的执行类,例如我们叫 CodeGenerator, 代码如下:
运行 CodeGenerator 的 main() 方法之后,我们能看到 Jboot 已经帮我们创建好对应的包名和类名,此时,项目的目录如下:
通过 Jboot 代码生成器的运行,项目对应的 model 类和 service 会自动生成,同时 Service 层的代码以及带有了对数据库增、删、改、查的基本能力.
需要注意的是: 再次运行该代码生成器的时候,BaseUser、BaseArticle会被重新覆盖,其他代码不会被覆盖。 若需要重新生成 service 层 和 User、Article 等代码,需要手动删除后,再次运行代码生成器 CodeGenerator 。
#自动注入
Jboot 通过 Google Guice 提供了强健稳定的代码注入功能,使用注入功能只需要了解以下三个注解:
@Bean : 声明此类可以被自动注入
@Inject : 对属性进行赋值注入
通过代码生成器生成的Service层代码就已经默认添加上了 @Bean 和 @Singleton 这两个配置,生成的代码如下:
我们使用到 UserService 接口的时候,只需要添加 @Inject 注解即可,例如:在 IndexController 需要用到 UserService,代码如下:
运行 main() 方法后,我们通过浏览访问 http://127.0.0.1:8080/users ,此时,页面显示的内容和 访问 http://127.0.0.1:8080/dbtest 的效果是一样的:
#数据库的增删改查
在本章节,我们要完成一个小型的项目,这个项目是一个用户管理系统,他具有以下功能:
显示用户列表,带有分页的功能
可以对单个用户删除
可以对用户进行修改
可以添加新的用户
#分页查询
我们可以继续来改造 IndexController,通过修改代码生成器的生成的 UserService,来达到上述要求的功能。
在上述的章节里,我们知道,通过如下的代码可以获得所有的用户信息:
如果要分页,我们需要在UserService添加一个分页的方法,并在 UserServiceImpl 来实现这个分页的方法,代码如下:
UserService.java
UserServiceImpl.java
为了代码更加简洁直观,我们新建一个 UserController 来做用户相关的增删改查功能,代码如下:
getParaToInt() 可以获得request提交过来的page数据,例如:http://127.0.0.1:8080/user?page=100 ,此时,代码里 page 的值是 100,当不传值得时候,默认值是 1 。
通过 userService.paginate 查询数据库,返回一个 Page 对象,里面包含了 当前页码、总页码 和 数据列表等信息。
通过 setAttr() 把数据结果传递到页面
把数据传递到 user.html 后,需要 user.html 把具体的数据和分页相关在网页上列出来。
第一步:完善数据的显示,user.html内容如下:
此时,运行 main() 方法,访问 http://127.0.0.1:8080/user ,页面显示内容如下:
第二步:完善分页功能。
Jboot应用的分页功能需要自定义一个分页标签,自定义分页标签非常简单,代码内容如下:
然后再修改 user.html 内容如下:
此时,运行 main() 方法,访问 http://127.0.0.1:8080/user ,页面显示内容如下:
由于数据量太小,同时在我们的代码里,要求每页显示10条数据,所以页面才显示了第一页,当我们在数据库添加数据量超过10条的时候,页面显示内容如下:
同时,上一页、下一页等功能正常使用,如下图:
实际上,#myPaginate() 自定义分页标签还可以做更多的配置,包括功能和样式等,但是这不是本章节要讨论的内容了。
#新增功能
为了实现新增功能,我们需要写一个叫 add.html 的页面,并写对应的 Controller,保证可以访问。
add.html 的代码如下:
通过 add.html 内容我们能看到,当用户点击 提交数据 按钮的时候,页面会把数据提交到 /user/doSave 这个路径上去,所以,需要我们在 UserController 编写一个叫做 doSave() 的方法来接收数据,并保存到数据库。
doSave() 方法内容如下:
doSave() 方法的主要作用是接收数据、把数据保存到数据库、然后跳转到 /user 这个页面去。
#修改功能
为了减少代码量,我们直接把 add.html 改造成为可用做新增,也可以用作修改的功能(通常在商业项目中也会这么做),因此,我们需要简单修改下 add.html 代码和 add() 这个方法的代码。
add.html
和新增功能的html对比,增加了 这行代码。
add() 方法内容如下:
同时, doSave()方法也需要修改下,用来区分是新增还是修改,代码如下:
最后,我们在改造下 user.html ,在表格的后面添加一个 修改 的连接, user.html 代码如下:
此时,页面内容如下,修改功能正常使用。
#删除功能
删除功能更加简单,只需要在Controller接收ID,然后调用 userService.delete() 方法就可以了,改造 user.html 代码如下:
页面显示如下:
我们只需要在 UserController 编写一个 del() 方法,接收id、删除数据库数据,并跳转回 /user 即可完成任务,代码如下:
到目前为止,增删改查所有功能完成。
#使用缓存提高性能
通过以上内容,我们可以使用Jboot开发一个具有增、删、改、查基本功能的Java Web 应用,但是,在互联网的应用里,高并发的要求可以说是必不可少的,缓存在提高应用性能和并发上有绝对的话语权。
在 Jboot 里,我们如何来使用缓存呢?
Jboot 提供了两种方案:
注解
手写代码
在注解中,Jboot提供了4个注解,方便的对缓存进行操作,他们分别是:
@Cacheable
@CachePut
@CacheEvict
@CachesEvict
如何来使用呢?
在以上的章节里,我们知道,如下的代码是一个分页查询的功能:
如何来让 paginate(int page, int size) 方法具有缓存的功能呢?
非常简单:
只需要添加 @Cacheable(name = "myCache",key = "page:#(page)-#(size)") 这个注解。
在Jboot中,默认的缓存为 EhCache , 这个注解的含义是:
在EhCache中创建一个缓存为myCache的缓存区
当查询第 1 页的时候,缓存的key为:page:1-10,因为 paginate(int page, int size) 方法在执行的时候,传递过来的值分别是:page=1,size=10
当查询第 2 页的时候,缓存的key为:page:2-10,原因同上。
当 paginate(int page, int size) 方法使用 @Cacheable 缓存之后,只有第一次访问的时候去查询数据库,之后的访问会直接从缓存中获取数据,大大提高了性能。
但是...
使用缓存也会带来一些问题,因为 paginate(int page, int size) 方法不再访问数据库,从而导致我们在数据库对数据进行增、删、改,这个页面数据都不会再发生变化。
要让 paginate(int page, int size) 方法与数据库同步,怎么办呢?
需要我们在对数据库进行 增、删、改 的时候,清除这个方法里的缓存数据。
代码如下:
重写父类 JbootServiceBase 的增、删、改的方法,在这些方法添加 @CacheEvict(name = "myCache",key = "*") 注解。
被添加@CacheEvict的方法,在执行之后,会清除 name 为 myCache 的所有key。 也就是清除 paginate(int page, int size) 方法所有的 key 。
这样,就做到了 paginate(int page, int size) 方法与数据库同步的功能了。
CIMCO Edit
276.25 MB/2020-08-17CIMCOEditV5是CIMCO软件公司专为数控编程而设计的专业软件,该软件以其强大的功能、低廉的价格而风靡欧美,它有强大而实用的数控编辑功能、文件的智能比较、刀位轨迹的三维模拟、DNC传输等功能。其完全的Windows界面,一目了然的地址颜色,强大的在线帮助,会使您爱不释手。
CKplayer网页播放器
336 KB/2020-08-17ckplayer是一款在网页上播放视频的免费的网页播放器,功能强大,体积小巧,跨平台,使用起来随心所欲。CKplayer网页播放器主要以adobe的flash(所使用的版本是CS5)平台开发,ckplayer同时也支持html5的视频播放。
WordPress
6.7 MB/2020-08-17WordPress是一种使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设自己的网志。也可以把WordPress当作一个内容管理系统(CMS)来使用。
Discuz论坛
4.05 MB/2020-08-17Discuz!Board(以下简称Discuz!,中国国家版权局著作权登记号2003SR6623)是一个通用的论坛软件系统,用户可以在不需要任何编程的基础上,Discuz论坛通过简单的设置和安装
Guns后台管理系统
12.5 MB/2020-08-17Guns后台管理系统是一款项目快速开发管理系统网站搭建模板,基于SpringBoot2开发,内置主控面板、组织架构、用户管理、机构管理、职位管理、权限管理、基础数据、系统功能
狂雨小说cms
7.8 MB/2020-08-17狂雨小说是一款体积轻量、简单易用的轻量级小说网站搭建模板,基于ThinkPHP5.1+MySQL的技术开发,网站搭建和部署便捷简单,通过该模板用户可以快速搭建一个属于自己的小说内
Slidev(开发幻灯片展示)
8.52 MB/2020-08-17Slidev是一款非常专业且优秀的开发幻灯片展示软件,作为基于Web的幻灯片制作和演示软件,非常适合开发人员使用,可帮助他们专注于在Markdown中编写内容,软件功能强大,拥有HTML
魔众短链接系统
27.5 MB/2020-08-17魔众短链接系统是一款绿色安全、免费开源的短链接生成网站搭建模板,基于PHP+Mysql开发,可帮助用户快速搭建属于自己的短链接生成网站,该网站界面简洁美观、对SEO非常友好,功
CIMCO Edit
建站专家网站建设系统
Turbo C 2.0库函数速查
PPTV网络电视系统
中英繁公司企业智能自助建站源码
宾馆酒店饭店网站建设模板ASP源码
XOOPS 简体中文版 2.0.3 for Unix
SaurusCMS
Deluge For Linux
老式水果机游戏
888彩票网
老式水果机投币游戏机
琼星海南麻将官方下载安装2024
角落棋牌官方网站
禅游斗地主下载抖音
心悦吉林麻将完整版
炸金花下载官方下载
彩虹多多彩票正版
您可能感兴趣的专题
男生必备
男生们看过来!
安卓装机必备
女生必备
女生必备app是拥有众多女性用户的手机软件,作为一个女生,生活中像淘宝、京东这类线上购物软件可以说是少不了的,小红书这种穿搭、化妆分享平台也很受欢迎,类似于西柚大姨妈、美柚这种专为女生打造的生理期app更是手机必备,还有大家用的最多拍照美颜app是绝对不能忘记的,除此之外对于一些追星女孩来说,微博也是一个必不可少的软件。超多女生必备软件尽在下载吧!
迅雷看看使用教程
迅雷看看播放器是一款多功能在线高清多媒体视频播放器,支持本地播放与在线视频点播,采用P2P点对点传输技术,可以在线流畅观看高清晰电影。不仅如此,迅雷看看不断完善用户交互和在线产品体验,让您的工作与生活充满乐趣。
驱动精灵
驱动精灵是一款集驱动管理和硬件检测于一体的、专业级的驱动管理和维护工具。驱动精灵为用户提供驱动备份、恢复、安装、删除、在线更新等实用功能,也是大家日常生活中经常用到的实用型软件之一了。
拼音输入法
对于电脑文字输入,拼音输入法是一种非常受欢迎的输入法,搜狗拼音输入法、百度拼音输入法、QQ拼音输入法、谷歌拼音输入法、紫光拼音输入法、智能拼音输入法等,你在用哪款呢?一款好用适合自己的拼音输入法一定对您平时帮助很大!下载吧收集了最热门国人最喜欢用的拼音输入法给大家。
b站哔哩哔哩怎么使用
很多人都喜欢在b站哔哩哔哩上观看视频,不单是因为可以提前看到一些视频资源,B站的一些弹幕、评论的玩法也是被网友们玩坏了!下面下载吧小编带来了b站哔哩哔哩怎么使用的教程合集!希望能帮到你啦!
抖音短视频app
抖音短视频app,这里汇聚全球潮流音乐,搭配舞蹈、表演等内容形式,还有超多原创特效、滤镜、场景切换帮你一秒变大片,为你打造刷爆朋友圈的魔性短视频。脑洞有多大,舞台就有多大!好玩的人都在这儿!