Java开发
文章平均质量分 54
Java开发技术专栏 Springboot Springcloud dubbo mybatis hibernate 微服务
真空零点能
这个作者很懒,什么都没留下…
展开
-
微服务——API网关
什么是API网关API网关(API Gateway)是应用服务之前的系统,用来代理业务系统的服务API,在网关层处理所有的非业务功能,实现管理授权、访问控制和流量限制等功能。这样业务系统就可以专注于业务,而不用去处理这些策略性的基础功能。在SOA时代就已经有ESB(EnterpriseService Bus 企业服务总线)形式的API网关,ESB功能比较重,存在单点问题。微服务网关是微服务形式的API网关,承担部分轻量的ESB总线能力,实现对外能力开放。主要优势是通过注册中心实现服务注册、服务发现.原创 2021-06-03 21:32:01 · 454 阅读 · 0 评论 -
软件开发模式——领域驱动设计(DDD Domain-Driven Design)
1 领域驱动设计(DDD Domain-Driven Design)领域即边界,领域设计是在一定业务边界范围内进行的。DDD领域模型准确反映了业务语言,传统JavaEE+ORM等事务性编程模型只关心数据。DDD接触到需求第一步是考虑领域模型,而不是用数据库和服务实现。DDD首先考虑的是业务语言,而不是数据,编程世界观不同。领域模型的价值在于提供一种通用的语言,使业务专家、产品经理和开发人员联系在一起,沟通无歧义。1.1 定义领域 Domain模型 Model领域模型构建语言 Ubiquito原创 2021-05-09 23:02:21 · 750 阅读 · 0 评论 -
Java8日期时间用法
java.util.Date和java.util.Calendar易用性差,不支持时区,不是线程安全的。Java8增加了新的日期和时间类:LocalDate、LocalTime、Instant、Duration 以及 Period,这些类都包含在 java.time包中。新API基于ISO标准日历系统,java.time包下的所有类都是不可变类型而且线程安全。Java8提供的日期时间类LocalDate 日期,格式为:yyyy-MM-dd LocalTime 时间,格式为:HH:mm:ss SSS原创 2021-04-25 19:00:55 · 119 阅读 · 0 评论 -
关系数据库——MySQL索引及优化
索引的本质索引的本质是一种数据结构,就象字典中的目录。MySQL InnoDB使用B+树作为索引结构,InnoDB表数据文件本身就是主索引。Key和Index区别Key 包含两层意义,一是约束,二是索引。包括primary key, unique key, foreign key ;Index 是索引,分为普通索引、唯一索引、主键索引、组合索引、全文索引;索引类型普通索引:最基本的索引; 唯一索引:索引列的值必须唯一,允许有空值; 主键索引:特殊的唯一索引,不允许有空值; 组合索原创 2021-04-25 18:59:43 · 65 阅读 · 0 评论 -
Java字符串拼接方法比较 String.join StringBuffer StringBuilder StringJoiner
String不可变对象,字符串操作会生成新的String对象,然后将指针指向新的String对象,大量使用影响Java应用性能,经常改变内容的字符串最好不要用String。StringBuffer可变对象,原理是申请一个缓冲区来存放字符串,可以避免产生新的字符串对象。StringBuffer是线程安全的,它的方法都被synchronized关键字修饰。StringBuilder为了解决StringBuffer的性能问题,JDK1.5提供了一个非线程安全的StringBuilder类。原创 2021-03-08 16:10:26 · 377 阅读 · 0 评论 -
浏览器跨域问题及解决方法
1 浏览器跨域问题跨域请求,是一个站点访问另外一个不同域名站点上的资源。当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域。比如说通过<link>标签加载外部样式表文件、通过<img>标签加载外部图片、通过<script>标签加载外部脚本文件等。同源策略(Same origin policy)是浏览器最基本的安全功能,同源策略阻止一个域的javascript脚本和另外一个域的内容进行交互(带src属性的标签不受同源策略限制)。默认情况下原创 2021-03-08 16:07:58 · 622 阅读 · 0 评论 -
Java/JDK各版本主要特性汇总
JDK各版本主要特性汇总Java15EdDSA 数字签名算法 Sealed Classes(封闭类,预览) Hidden Classes(隐藏类) 移除 Nashorn JavaScript引擎 改进java.net.DatagramSocket 和 java.net.MulticastSocket底层实现Java14instanceof模式匹配 Record类型,类似于Lombok 的@Data注解 Switch 表达式-标准化 改进 NullPointerException.原创 2020-12-17 22:12:01 · 190 阅读 · 0 评论 -
权限认证:SSO单点登录
什么是单点登录SSO(Single Sign On)是处理一个公司内的不同应用系统之间的登录问题,比如阿里巴巴旗下有很多应用系统,我们只需要登录一个系统就可以实现不同系统之间的跳转。为了完成一个简单的SSO功能,需要两个部分的合作:统一的身份认证服务。 每个应用都通过这个统一的认证服务来进行身份校验。SSO 实现原则1、所有的认证登录都在 SSO 认证中心进行;2、SSO 认证中心通过一些方法来告诉 Web 应用当前访问用户究竟是不是已通过认证的用户;3、SSO 认证中心和所有的..原创 2020-10-09 21:21:33 · 741 阅读 · 0 评论 -
分布式架构方式微服务
什么是微服务微服务(Microservice)是一种架构模式,将单一应用划分成一组服务,服务之间采用轻量级的通信机制(通常是基于HTTP的RESTful API)。微服务架构已经得到了广泛认可。一个大型系统可以由多个微服务组成,每个微服务独立部署,实现自己的业务单元,微服务之间通过API方式进行通信调用,是松耦合的。微服务特点:复杂度可控:将应用分解,每一个微服务专注于单一功能。每个微服务复杂度低,易于保持高可维护性和开发效率。独立部署:每个微服务都可独立部署,缩短应用交付周期。技术选型灵活原创 2020-08-30 15:54:44 · 328 阅读 · 0 评论 -
Java集成浏览器chrome
Java浏览器应用:使用Java集成chrome浏览器,实现Java操控浏览器功能(获取html源码;脚本注入等)。Java嵌入浏览器源码工程,示例包含:JAVA调用JS; JS调用Java; 获取HTML源码; 定制右键菜单; 多窗口以Tab形式展现;运行环境Windows10 64bit JDK1.8导入工程Eclipse1 解压工程源码,导入工程;2 设置工程属性, Java Build Path >>添加lib下的jar;3 设置工程属性,J原创 2020-08-14 13:35:39 · 2119 阅读 · 0 评论 -
使用Java脚手架5分钟快速开发网站与管理后台
快速开发项目这里以导航站为例,使用Java脚手架快速开发,也可用此框架实现复杂的后台管理系统。技术框架:Springboot2.x Bootstrap导入工程用Eclipse或IDEA导入Maven工程,等待jar包下载完成。修改配置文件:application.yml上传文件路径 数据库连接,用户名及密码创建表:站点类别表,站点信息表系统表包括:组织机构,部门用户,菜单角色权限等,由Java框架集成配置管理功能。代码生成通过界面构建生成对应表结构的管理功能代..原创 2020-08-05 09:39:36 · 971 阅读 · 0 评论 -
SpringBoot集成API文档工具Swagger
当前比较流行前后端分离式开发,提供详细的后端API接口文档,对于前端开发和后端开发都是比较重要的。开发者可以查阅和搜索API文档,并可以直接切换接口调试,提高了开发效率。Swagger是用于Restful API开发的工具,可以动态生成Api接口文档,降低沟通成本。OpenAPI Specification:API规范,规定了如何描述一个系统的API Swagger Codegen:用于通过API规范生成服务端和客户端代码 Swagger Editor:用来编写API规范 Swagger UI:用原创 2020-07-10 09:41:58 · 93 阅读 · 0 评论 -
Springboot 定义接口方法同时支持GET和POST请求
@RequestMapping 注解能够处理 HTTP 请求的方法, 比如 GET, PUT, POST, DELETE 以及 PATCH。常用方式如下写法:@RequestMapping(method = RequestMethod.GET)String get() { return "from get";}@RequestMapping(method = RequestMethod.DELETE)String delete() { return "from delete";}@原创 2020-06-22 11:54:19 · 8120 阅读 · 0 评论 -
你的MySQL连接安全吗,使用SSL通信加密
MySQL 5.7版本提供了比较简单的SSL安全访问配置,且默认连接就采用SSL的加密方式。SSL介绍SSL(Secure Socket Layer:安全套接字层)利用数据加密为基于TCP协议提供安全保证。SSL协议功能:利用对称密钥算法对传输的数据进行加密。利用数字签名方法对服务器和客户端进行身份验证。消息传输过程中使用MAC算法来检验消息的完整性。如果传输不是通过SSL的方式,其在网络中数据都是以明文进行传输的,数据有可能被窃取。MySQL5.7 SSL配置运行命令 bin原创 2020-06-22 11:52:15 · 780 阅读 · 0 评论 -
Java使用OCR技术识别图形图像文本信息
OCR技术OCR技术是光学字符识别的缩写(Optical Character Recognition),利用文字识别技术将图像信息转化为文本信息。应用于银行票据、大量文字资料、档案卷宗、文案的录入和处理领域,例如:自动识别身份证号码,将AI引入审核场景,与风控规则相结合,减少人为对图片的审核,大大提高审核效率。OCR开发包由于图像技术门槛较高,特别是中文语言库需要大量的训练才能达到较高的识别率。目前很多OCR软件,一般都是借用大公司的API接口实现的,如百度OCR接口。在线接口识别率比较高,但受原创 2020-06-01 19:03:29 · 1929 阅读 · 0 评论 -
电子商城 购物网站 功能与技术选型
电子商城是购买日常用品,书籍,服饰,鞋帽,玩具,软件,家电等并支持物流配送的购物平台。购物网是互联网、银行、现代物流业发展的产物。电子商城方便了人们的生活,足不出户就可以买到一切自己需要的东西。以前的实体店商场超市以及餐饮饭店都转向线上交易,电子商城已经成为了一种趋势。近几年商城为什么发展这么迅猛呢?由于现代通信技术的发展以及货币支付方式的变化,特别是移动端智能设备出现以后,商城已不是以前那个商城了,以后随着5G技术的发展也必将有更大的变化。基本功能商城规模不同,实现的功能也不同,商城规模越大,原创 2020-05-29 15:46:04 · 642 阅读 · 0 评论 -
Springboot集成Shiro实现身份认证和权限控制
https://www.oxingsoft.com/blog/article/10.html对比Spring SecuritySpring Security,是一个基于Spring的身份验证和访问控制框架。支持主流的认证方式(HTTP 基本认证、HTTP 表单验证、HTTP 摘要认证、OpenID 和 LDAP 等)。授权方面,提供了基于角色的访问控制和访问控制列表(Access Control List,ACL),可以对应用中的领域对象进行细粒度的控制。官网:https://spring.io原创 2020-05-14 12:51:39 · 391 阅读 · 0 评论 -
Springboot集成Mybatis-plus
MyBatis-Plus官网:https://mp.baomidou.com与TkMybatis比较都是对mybatis增强扩展,基本功能都是简化sql配置,集成代码生成器,支持乐观锁、分页、多数据源。Mybatis-Plus(简称MP)是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发、提高效率而生,这是官方给的定义。MyBatis-Plus特性无侵入:基于mybatis只做增强不做改变,不会对现有工程产生影响。 损耗小:自动注入基本C...原创 2020-05-11 13:32:22 · 429 阅读 · 0 评论 -
Springboot请求参数校验
前端提交的请求参数需要进行校验,如果使用if else语句校验,比较繁琐。使用@Valid和@Validated注解很好的解决了这个问题。@Valid和@Validated的区分@Validated是@Valid 的一次封装,是Spring提供的。@Valid不提供分组功能。@Validated不提供嵌套验证功能。嵌套验证需要在对应的嵌套属性前加@Valid。实例类增加验证注解...原创 2020-05-08 08:59:56 · 992 阅读 · 0 评论 -
Springboot配置扫描其它模块路径的方法
Springboot配置扫描其它模块路径的方法SpringBootApplication启动时会默认扫描主类当前包及子包,如果需要扫描主类当前包以外的其他包,可用如下注解配置实现:@SpringBootApplication@ComponentScan(basePackages = {"com.oxing.mall","com.oxing.blog"})public class Ma...原创 2020-05-06 10:33:50 · 2065 阅读 · 0 评论 -
Springboot多数据源主从配置
开发经常遇到需要配置多个数据源的情况,比如:使用多个host或多种数据库MySql/Oracle/SqlServer情况,使用springboot可以如下配置:配置文件 application.propertiesspring.datasource.test1.mysql.jdbc-url =jdbc:mysql://localhost:3306/test1?useUnicode=tru...原创 2020-05-06 10:32:22 · 615 阅读 · 0 评论 -
SpringBoot启动时,执行初始化方法的几种方式
SpringBoot启动时,执行初始化方法的几种方式:方法1:CommandLineRunner接口import org.springframework.boot.CommandLineRunner;@SpringBootApplicationpublic class DemoApp implements CommandLineRunner { @Autowired WebAppConfig appConfig; /** * main method */ public原创 2020-05-27 09:41:30 · 1793 阅读 · 0 评论 -
Java代码辅助效率工具Lombok(注解,自动生成代码)
Lombok是一款小巧的代码生成工具。Lombok优点:注解驱动,在编译时自动为属性生成构造器getter/setter、equals、hashcode、toString,Constructor等方法代码;让代码变得简洁,减少大量冗余代码;修改属性对应方法自动调整,提高开发效率;原创 2020-05-21 20:31:23 · 372 阅读 · 0 评论