Spring&SpringBoot常用注解总结
这篇文章介绍了 Spring/SpringBoot 常用注解。 @SpringBootApplication 这里先单独拎出@SpringBootApplication 注解说一下,虽然我们一般不会主动去使用它。 这个注解是 Spring Boot 项目的基石,创建 SpringBoot 项目之后会默认在主类加上。 @SpringBootApplicationpublic class SpringSecurityJwtGuideApplication { public static void main(java.lang.String[] args) { SpringApplication.run(SpringSecurityJwtGuideApplication.class, args); }} 我们可以把 @SpringBootApplication看作是 @Configuration、@EnableAutoConfiguration、@ComponentScan 注解的集合。 package org.sp...
MySQL高性能优化规范建议总结
数据库命名规范 所有数据库对象名称必须使用小写字母并用下划线分割 所有数据库对象名称禁止使用 MySQL 保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来) 数据库对象的命名要能做到见名识意,并且最后不要超过 32 个字符 临时库表必须以 tmp_ 为前缀并以日期为后缀,备份表必须以 bak_ 为前缀并以日期 (时间戳) 为后缀 所有存储相同数据的列名和列类型必须一致(一般作为关联列,如果查询时关联列类型不一致会自动进行数据类型隐式转换,会造成列上的索引失效,导致查询效率降低) 数据库基本设计规范 所有表必须使用 InnoDB 存储引擎,没有特殊要求(即 InnoDB 无法满足的功能如:列存储,存储空间数据等)的情况下,所有表必须使用 InnoDB 存储引擎(MySQL5.5 之前默认使用 Myisam,5.5 以后默认的为 InnoDB)。InnoDB 支持事务,支持行级锁,更好的恢复性,高并发下性能更好。 数据库和表的字符集统一使用 UTF8。兼容性更好,统一字符集可以避免由于字符集转换产生的乱码,不同的字符集进行比较前需要进行转换会造成索引失效,如...
Eureka简介
Eureka简介 什么是服务治理? 服务治理就是提供了微服务架构中各微服务实例的快速上线或下线且保持各服务能正常通信的能力的方案总称。 服务治理的优点: 更高的可用性 服务治理可以支持动态的服务实例集群环境,任何服务实例可以随时上线或下线。并且当一个服务实例不可用时,治理服务器可以将请求转给其他服务提供者,当一个新的服务实例上线时,也能够快速地分担服务调用请求。 负载均衡 服务治理可以提供动态的负载均衡功能,可以将所有请求动态地分布到其所管理的所有服务实例中进行处理。 提升应用的弹性 服务治理的客户端会定时从服务治理服务器中复制一份服务实例信息缓存到本地中,这样即使当服务治理服务器不可用时,服务消费者也可以使用本地的缓存去访问相应的服务,而不至于中断服务。通过这种机制,极大地提高了应用的弹性。 高可用性集群 可以构建服务治理集群,通过互相注册机制,将每个治理服务器所管辖的服务信息列表进行交换,使服务治理服务拥有更高的可用性。 Spring Cloud封装了Netflix公司开发的Eureka模块来实现服务治理。在传统的rpc远程调用框架中,管理每个服务之间的...
设计模式
设计模式简介 设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。 设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理地运用设计模式可以完美地解决很多问题,每种模式在现实中都有相应的原理来与之对应,每种模式都描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,这也是设计模式能被广泛应用的原因。 开发人员的共同平台 设计模式提供了一个标准的术语系统,且具体到特定的情景。例如,单例设计模式意味着使用单个对象,这样所有熟悉单例设计模式的开发人员都能使用单个对象,并且可以通过这种方式告诉对方,程序使用的是单例模式。 最佳的实践 设计模式已经经历了很长一段时间...
spring总结
spring 简介 Spring框架是一个开放源代码的J2EE应用程序框架,由Rod Johnson发起,是针对bean的生命周期进行管理的轻量级容器(lightweight container)。 Spring解决了开发者在J2EE开发中遇到的许多常见的问题,提供了功能强大IOC、AOP及Web MVC等功能。Spring可以单独应用于构筑应用程序,也可以和Struts、Webwork、Tapestry等众多Web框架组合使用,并且可以与 Swing等桌面应用程序AP组合。因此, Spring不仅仅能应用于J2EE应用程序之中,也可以应用于桌面应用程序以及小应用程序之中。 目的:解决企业应用开发的复杂性。 2004年3月24日,Spring框架以interface21框架为基础,经过重新设计,发布了1.0正式版。 理念:使现有的技术更加容易使用,本身就是一个大杂烩,整合了现有技术框架。 Rod Johnson,Java和J2EE开发领域的专家。Spring框架的创始人,同时也是SpringSource的联合创始人。Spring是面向切面编程(AOP)和控制反转(IOC)的容器...
java8
java8 java8新特性简介: 速度更快 代码更少(增加了新的语法Lambda表达式) 强大的Stream API 便于并行 最大化减少空指针异常Optional 其中最为核心的为Lambda表达式与Stream API Lambda表达式 Lambda是一个匿名函数,我们可以把Lambda表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使java的语言表达能力得到了提升。 java8中引入了一个新的操作符 -> 该操作符称为箭头操作符或Lmabda操作符,箭头操作符将Lambda表达式拆分成两部分: 左侧:lambda表达式的参数列表 右侧:Lambda表达式中所需要执行的功能,即Lambda体 语法一:无参数,无返回值 () -> System.out.print(“Hello Lambda”); @Testpublic void test1(){ Runnable runnable1 = () -> System.out.println("H...
jenkins
jenkins简介 简介 Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要。 Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。 Jenkins 支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。 CI全称 Continuous Integration,表示持续集成 CD 持续交付Continuous Delivery和持续部署Continuous Deployment Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具。主要做的事情就是从git中拉取代码,根据配置信息打包;把打好的包传输到目标服务器,并可以执行一些shell脚本,使项目打包发布一键完成。 Jenkins 用户手册 Jenkins 的安装和设置 jenkins官网 清华大学开源软件镜像站 持续部署、持续集成、持续交付。 安装gitlab[官网文档] gitlab官方网站 极狐GitLab 极狐GitLab下载安装 安装和配置...
openFeign简介
openFeign简介 openFeign使用 在消费者pom.xml引入如下依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId></dependency> 在启动类上加注解@EnableFeignClients @SpringBootApplication@EnableDiscoveryClient@EnableFeignClientspublic class NacosConsumer { public static void main(String[] args) { SpringApplication.run(NacosConsumer.class,args); }} 在服务提供者中有这样一个controller @RestControllerp...
Nacos简介
Nacos简介 D:\nacos-server-1.4.2\nacos\bin>startup.cmd"nacos is starting with cluster" ,--. ,--.'| ,--,: : | Nacos 1.4.2,`--.'`| ' : ,---. Running in cluster mode, All function modules| : : | | ' ,'\ .--.--. Port: 8848: | \ | : ,--.--. ,---. / / | / / ' Pid: 16400| : ' '; | / \ / \....
redis简介
redis简介 redis是什么? Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。 免费和开源!是当下最热门的NoSql技术之一!也被人们称为结构化数据库! redis能干嘛? 内存存储、持久化,内存是断电即失的,所以需要持久化(RDB、AOF) 高效率、用于高速缓冲 发布订阅系统 地图信息分析 计时器、计数器(eg:浏览量) redis特性? 多样的数据类型 持久化 集群 事务 redis是单线程的,redis是基于内存操作的,cpu不是redis的性能瓶颈,redis的瓶颈是根据机器的内存和网络宽带,既然可以使用单线程来实现,就使用单线程了 linux安装 下载地址:https://redis.io/ 下载:redis-6.2.10.tar.gz [root@quan qu...














