自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 java泛型

泛型 :参数化类型。(将类型确认推迟到创建对象或者调用方法的时候来确认)为啥要使用泛型?在没有泛型的时候一般使用Object类来指定不确定参数的类型。但是这样一来会导致我们需要做额外的类型转化操作。可以用在类和方法上;用在类上紧跟类名之后,用在方法上需要先声明 声明在方法返回值类型之前一般用<T>,<E>来指定;...

2022-04-14 19:20:58 454

原创 java基础

面向对象 是一种软件开发思想,是对现实世界的一种抽象,会把相关的数据和方法当成一个整体来看待。

2021-09-15 08:46:37 147

原创 linux 常用命令 (firewall,netstat)

查看tcp端口开放情况# 打开443/TCP端口firewall-cmd --add-port=443/tcp# 永久打开3690/TCP端口firewall-cmd --permanent --add-port=3690/tcp# 永久打开端口好像需要reload一下,临时打开好像不用,如果用了reload临时打开的端口就失效了firewall-cmd --reload...

2021-07-07 14:14:14 227

原创 相关疑惑解决,java线程虚假唤醒等等问题

1. System.out.println方法是线程安全的之前一直疑惑为啥下面案例中的主线程中num = 1会对线程A可见,注意没有加volatile修饰class Test1{ //public volatile static int num =0; public static int num =0; public static void main(String[] args) { new Thread(()->{ while

2021-05-26 13:34:38 163

原创 关于java中::语法的理解

1.现有接口Personpublic interface Person { void run(String a,int b);}2.测试类public class TestClass { public static void main(String[] args) { Person person = TestClass::printValur; person.run("nn",2); } private static v

2021-05-25 15:01:43 277

原创 多线程

进程进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度的一个独立单位,是应用程序运行的载体。线程线程是操作系统能够进行运算调度的最小单位,它是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程。每条线程并行执行不同的任务。创建线程的方式@TOC...

2021-05-24 13:50:42 93

原创 Dubbo

dubbo是一个高性能的RPC架构,方便于我们解决分布式中各服务之间的通信与序列化问题在springboot项目中使用导入依赖 <!-- dubbo --> <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-spring-boot-starter</artifactId&g

2021-05-20 21:05:57 186 2

原创 mysql主从复制

概念复制是指将主数据库的DDL和DML操作通过二进制日志传到从库服务器中,然后在从库上对这些日志重新执行,从而使得从库和主库的数据保持同步。mysql支持一台主库同时向多台从库进行复制,从库同时也可以作为其他从服务器的主库,实现链状复制。复制原理集群搭建 1)master数据库修改my.cnf配置如下 #mysql服务ID,保证整个集群环境中唯一server-id =1#mysql binlog日志的存储路径和文件名log-bin=/var/lib/mysql/my.

2021-05-11 13:09:44 87

原创 查看日志

查看错误日志--先连接数据库 然后查看日志所在地方show variables like 'log_error';binlog日志--先查看是否开启show variables like 'log_';如果为ON则表明已经开启,如果为OFF则没有开启需要在配置文件my.cnf中添加如下配置<!--配置开启binlog日志此处可以指定日志存放地点/home/logs/mysqlbin -->log_bin=mysqlbin<!--配置二进制日志的格式-..

2021-04-27 21:51:11 338

原创 mysql常用备份指令

mysql远程连接--指定ip和端口号注意端口号为大写Pmysql -h 127.0.0.1 -P 3306 -u root -p rootmysqladmin指令--查看帮助文档mysqladmin -help--快速创建数据库mysqladmin -uroot -proot create database ykjcce;mysqldump导出建表语句--导出表结构mysqldump -uroot -proot ykjcce > /tempss/ykjcce.sql;.

2021-04-27 20:07:33 174

原创 其他优化方向

使用多表连接查询代替子查询使用union 代替or对于分页查询--Mysql在进行分页查询时越往后效率越低select * from student limit 1000000,10--1.在索引上完成排序分页操作,最后根据主键关联回原表查询所需要的其他列内容select a.* from student a, (select sid FROM student LIMIT 1000000, 10) b where a.sid = b.sid--2.先利用主键查找出分页区间,然后在进行分.

2021-04-22 18:54:04 87

原创 group by 语句优化

因为经过分组的字段会默认排序,如果没有排序要求可以在分组后添加 ‘order by null’select score,count(1) from student GROUP BY score ORDER BY null为分组字段添加索引

2021-04-22 17:58:49 78

原创 优化order by语句

mysql可以通过查看sql执行计划知道其排序方式有两种 using filesort 和 using index第一种是通过对返回数据进行排序,也就是通常说的filesort排序,所有不是通过索引直接返回排序结果的排序都叫filesort排序第二种通过有序索引顺序扫描直接返回有序数据。不需要额外排序,操作效率很高。对于单字段排序推荐查询字段都有对应索引。多字段排序要求排序字段要么都升序,要么都降序,且排序字段是创建了复合索引(并且排序字段是按照创建索引字段的顺序来的)..

2021-04-22 14:35:52 75

原创 优化以insert语句导入数据的方式

对于下面两种插入数据的方式推荐使用下面的插入方式效率更高(这种情况会缩减客户端与数据库连接次数,提高insert效率)insert into student(sno,sname,sage,ssex,tno) VALUES(10036,'ykjcs',18,'0','1002');insert into student(sno,sname,sage,ssex,tno) VALUES(10037,'zkjo',25,'0','1003');insert into student(sno,sname,sag.

2021-04-22 13:09:27 188

原创 以文件形式导入大批量数据

对于InnoDB类型的表按主键顺序插入因为InnoDB类型的表是安装主键顺序保存的,所以将导入的数据按照主键的顺序排列,可以有效的提高导入效率,如果InnoDB类型的表没有主键,那么系统会自动默认创建一个内部列作为主键,所以如果可以给表创建一个主键,将可以利用这点,来提高导入数据的效率。关闭唯一性校验(当字段中有唯一性约束时)SET UNIQUE_CHECKS=0;SET UNIQUE_CHECKS=1;(导入数据结束后开启)手动提交事务。再导入数据前关闭自动提交,结束后开.

2021-04-22 12:58:20 121

原创 索引的使用

最左前缀法则如果是复合索引,要遵守最左前缀法则,指的是查询从索引的最左前列开始,并且不跳过索引中的列(可以看作是爬楼梯1楼楼梯必须在才能往上。)

2021-04-22 11:44:56 191

原创 Mysql笔记

1.操作数据库创建数据库CREATE DATABASE if NOT EXISTS ykjcce;使用数据库USE ykjcce;删除数据库DROP DATABASE if EXISTS ykjcce;查看所有数据库SHOW DATABASES;

2021-04-21 12:00:13 75

原创 Mybatis要点

Mybatis是一款优秀的持久层框架,它支持自定义SQL,存储过程以及高级映射。Mybatis免除了几乎所有的JDBC代码,参数设置和获取结果集的工作。Mybatis可以通过简单的xml或者注解来配置和映射基本数据类型,接口和pojo类为数据库中的记录。Mybatis官方中文文档1.引入依赖 <dependency> <groupId>org.mybatis</groupId> <artifact.

2021-04-16 16:18:28 178

原创 使用分页插件PageHelper

PageHelper官方文档。pagehelper依赖 <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.2.0</version> </dependency>在 MyBat

2021-04-16 15:32:36 85

原创 项目编译后,classses文件中没有对应的xml文件,一般是编译后mapper类对应的xml文件没有生成

解决方法。在pom文件中添加如下配置 <build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> .

2021-04-14 12:52:06 560

原创 swagger常用注解

@Api(常用在Controller 类上,标记为 Swagger 文档资源)package com.yk.controller.medicine;import com.yk.pojo.Medicine;import io.swagger.annotations.Api;import io.swagger.annotations.ApiOperation;import org.springframework.web.bind.annotation.PostMapping;import org.

2021-04-12 15:35:05 256 1

原创 swagger配置分组

在实际生产环境中,为了方便接口对应各自的开发人员,可以分组也即定义多个Docket对象package com.yk.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import springfox.documentation.builders.RequestHandlerSelectors;import s

2021-04-12 14:39:18 1749

原创 Swagger3.0

号称世界上最流行的Api框架,可以直接运行,能够即时提供接口信息,并且可以在线测试Api接口。1.旧版本中导入依赖和访问方式 //导入依赖 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependenc

2021-04-12 13:36:36 96

原创 自定义登陆页面

//配置类中定义相关内容 @Override protected void configure(HttpSecurity http) throws Exception { //登陆页面地址 http.formLogin().loginPage("/toLogin") //绑定登陆用户名中 name属性对应的值 .usernameParameter("username") //绑定.

2021-04-08 16:07:07 440

原创 进行权限控制

//导入thymeleaf和springsecurity整合包,方便我们在页面进行权限控制。 <dependency> <groupId>org.thymeleaf.extras</groupId> <artifactId>thymeleaf-extras-springsecurity4</artifactId> <version>3.0.4.RELEASE</version> </dep..

2021-04-08 14:58:22 79

原创 spring-security的初步应用

//spring-boot中的依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>需要定义一个配置类 继承自WebSecurityConfigurerAdapter,引用@EnableWebSecurity注..

2021-04-08 13:36:03 74

原创 自定义一个springboot启动器

对于springboot-starter很好理解即让spring容器帮我们自动配置引入的组件。下面具体讲一下怎么创建自定义的启动器。首先我们需要用idea新建一个空的项目接下来new一个moudle,注意是maven类型的要确保新建的moudle要在项目的目录下(注意第三方启动器命名格式:xxxx-spring-boot-starter)再建一个moudle,注意类型是spring initializr,同样确保其在项目的目录下创建完成后将成后,项目结构然后我们可以在这个模块中

2021-04-02 13:53:58 168

原创 spring中getBeansWithAnnotation(Class<? extends Annotation> annotationType)方法

spring中可以通过getBeansWithAnnotation来获取ioc容器中使用了某个注解的所有bean,这个方法底层原理:我们知道可以通过反射来获取一个类中所有的注解,然后通过遍历spring容器中所有bean就能获取需要的结果。//自定义@Auditable注解package com.yk.annotation;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import ja

2021-04-01 14:57:22 6997 2

原创 SpringBoot整合Druid,以及配置Druid监控

对于Druid,阿里有提供启动器,坐标为 <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.22</version> </dependency>在spri

2021-04-01 12:14:48 384

原创 ApplicationContext和BeanFactory

BeanFactory - BeanFactory 就像一个包含 bean 集合的工厂类。它会在客户端要求时实例化 bean。ApplicationContext - ApplicationContext 接口扩展了 BeanFactory 接口。它在 BeanFactory 基础上提供了一些额外的功能。...

2021-01-18 16:02:37 126

原创 学习笔记(Spring事务管理)

maven中导入的依赖org.springframeworkspring-context5.2.6.RELEASEorg.springframeworkspring-aop5.2.6.RELEASEorg.springframeworkspring-aspects5.2.6.RELEASEorg.aspectjaspectjweaver1.9.5org.springframeworkspring-orm4.3.7.RELEASEcom.alib

2021-01-14 18:18:27 72

原创 SpringAop @AfterThrowing通知中获取异常信息并且在控制台打印

@AfterThrowing(pointcut = “anyOldTransfer()”,throwing =“ex”)public void afterThrowing(Throwable ex){StringWriter sw = new StringWriter();ex.printStackTrace(new PrintWriter(sw,true));System.out.println(sw.getBuffer().toString());}

2021-01-13 15:10:19 2670

转载 关于Java中String类的intern()方法

常见列子 String s1 = new StringBuilder(“go”).append(“od”).toString();System.out.println(s1.intern() == s1); String s2 = newStringBuilder(“ja”).append(“va”).toString();System.out.println(s2.intern() == s2); 输出 true false在网上搜了下,都解释说字符串常量池中有java这个字符串常量,因此下面那.

2021-01-12 17:31:06 593

原创 在Linux系统下防火墙开放所需要访问的端口号

以下操作是在 CentOS 7 系统版本操作的,CentOS 6.5 及以下不支持(1) 向防火墙添加 Redis 端口: firewall-cmd --zone=public --add-port=6397/tcp --permanent(2) 刷新防火墙规则: firewall-cmd --reload(3) 验证端口,查询防火墙开放端口: firewall-cmd --zone=public --list-ports/mysql 3306同理。...

2021-01-12 14:54:43 185

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除