目录

Life in Flow

知不知,尚矣;不知知,病矣。
不知不知,殆矣。

标签: Java (110)

AlibabaCloud

单机应用到分布式架构演进 单机架构 优点: 易于测试 便于集成 小型项目友好 缺点: 开发速度慢 启动时间长 依赖庞大 分布式架构 SOA :Service Oriented Architecture 面向服务的架构 其中包含多个服务, 服务之间通过相互依赖最终提供一系列的功能, 一个服务 通常以独立的形式存在与操作系统进程中, 各个服务之间 通过网络调用。 微服务:将一个大的单体应用进行细粒度的服务化拆分,每个拆分出来的服务各自独立打包部署,各个服务之间 通过网络调用。 优点 易开发、理解和维护 独立的部署和启动 缺点 分布式系统-》分布式事务问题 需要管理多个服务-》服务治理 微服务架构常见的核心组件 网关 路由转发 + 过滤器 /api/v1/video/ 视频服务 /api/v1/order/ 订单服务 /api/v1/user/ 用户服务 服务发现注册(注册中心) 调用和被调用方的信息维护 配置中心 管理配置,动态更新 application.properties 链路追踪 分析调用链路耗时 例子:下单-》查询商品服务获取商品价....

swagger

官网 https://swagger.io/ 借助Swagger开源和专业工具集,为用户,团队和企业简化API开发。 依赖 在项目中使用Swagger需要springbox swagger2 ui Springboot 集成 Swagger 快速入门 新建springboot项目 mvnrepository.com仓库搜索 springfox-swagger,找到坐标 :Springfox Swagge UI、Springfox Swagger2 <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency> <!-- ht....

Spring Framework5.X

spring框架,使用的好处 什么是Spring:轻量级的 DI / IoC 和 AOP 容器的开源框架 https://spring.io/projects/spring-framework 有啥好处: 管理创建和组装对象之间的依赖关系 使用前:手工创建 UserControoler private UserService userService = new UserService(); 使用后:Spring创建,自动注入 面向切面编程(AOP)可以解耦核心业务和边缘业务的关系 场景:用户调用下单购买视频接口,需要判断登录,拦截器是AOP思想的一种实现 使用前:代码写逻辑,每次下单都调用方法判断,多个方法需要判断登录则都需要 登录方法判断 使用后:根据一定的方法或者路径规则进行判断是否要调用,降低代码耦合度 包含java大型项目里面常见解决方案 web层、业务层、数据访问层等 极其便利的整合其他主流技术栈,比如redis、mq、mybatis、jpa 社区庞大和活跃,在微服务、大数据、云计算都有对应的组件 为什么要学?(springboot帮....

Mybatis3.X

原生JDBC访问数据库的缺点 原生jdbc缺点 每次要加载驱动,连接信息是硬编码 sql和java代码耦合一起,改动不易 参数设置缺少灵活性 处理结果集麻烦,不能自动映射到实体类 连接资源不能复用,资源浪费 ORM框架介绍 什么是ORM框架 对数据库的表和POJO(Plain Ordinary Java Object)Java对象的做映射的框架 市面上的ORM框架 hibernate (ssh) 比较笨重,sql调优麻烦 推荐指数:不推荐 JPA - Spring Data JPA Java Persistence API, 轻量级,部分中小项目适合 推荐指数:次之 mybatis 半自动化(半ORM框架),便于写sql,轻量级,在阿里等大厂广泛使用 推荐指数:推荐 Mybaits3.X 什么是 MyBatis ? Apahce的一个开源项目 一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作 通过简单的 XML 或注解来配置和映射 Java对象 到 数据....

JDBC

JDBC 全称 Java DataBase Connectivity, 是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口 提供了一种接口基准,可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序 应用程序代码一般不能直接访问数据库,需要通过相应的数据库驱动程序才行, 数据库驱动就是数据库厂商对JDBC接口的实现 JDBC连接MySQL相关概念 数据库驱动:不同数据库开发商(比如oracle mysql等)为了某一种开发语言能够实现统一的数据库调用而开发的一个程序, 作用相当于一个翻译人员, 将某个语言(比如java)中对数据库的调用通过这个翻译成各个种类的数据库 自己的数据库语言 Connection连接:特定数据库的连接(会话),在连接上下文中执行sql语句并返回结果 Statement 语句: 创建执行SQL语句的statement, 有好几种实现类,用于执行对应的sql ResultSet结果集:SQL查询返回的结果信息 使用Java连接Mysql的步骤 加载JDBC驱动程序 建立数据库连接Connection 创建执行SQL的语句Sta....

JavaWeb

javase、javaweb、javaee javase :就是java基础技术栈,做java相关开发的基础,比如javaweb、javaee javaweb:使用java开发网站相关技术,比如Servlet、JDBC、Tomcat、Session/Cookie等技术栈,javaweb里面很多技术,但有部分慢慢被弃用了,比如JSP等技术点企业很少用了 javaee:全称Java Platform,Enterprise Edition,可以构建企业级的面向服务体系结构(service-oriented architecture,SOA)微服务、组件等的技术栈,更多的是框架层面开发构建大型应用。 服务架构:MicroService : SpringCloud /Alibaba Cloud 无服务架构:ServerLess 服务网格:Service Mesh 主流框架(当然现在还有少数公司用老旧项目): 2015年:Struts + Hibernate + Spring SSH 2015~2018之间:SpringMVC + Spring + Mybatis SSM 2018年....

SpringBoot开发规范

目录结构、静态资源访问 # 目录结构 * src/main/java:存放代码 * src/main/resources * static: 存放静态文件,比如 css、js、image, (访问方式 [http://localhost:8080/js/main.js](http://localhost:8080/js/main.js)) * templates:存放静态页面jsp,html,tpl * config:存放配置文件,application.properties # 静态资源访问(同一个文件的加载顺序) 默认配置 spring.resources.static-locations = classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/ * META/resources > * resources > * static > * public 启动、部署 # Jar方式打包启动(pom文件新增maven插件) <build....