java
文章平均质量分 82
youandme520
这个作者很懒,什么都没留下…
展开
-
【java】Linux上运行jar包的几种方式
4、nohup启动:nohup java -jar demo.jar>/root/demo.log 2>&1 &这种方式会在后台静默运行,关闭会话窗口会中断Java,和上一种一样,这两个日志都是打印在窗口的,关闭会话就没了。这种会把日志打印到nohup.out文件中,但只会打印标准输出不会打印错误输出,关闭通过pid号来kill掉。这种启动方式适合自己测试,因为一般部署在Linux上,这种方式关闭会话窗口或者ctrl+c都会关闭Java。5、系统服务启动,自带定义一个系统服务来启动,我使用的是这种。转载 2023-01-06 13:39:52 · 2517 阅读 · 0 评论 -
java中字符串Base64、16进制的转解码函数DatatypeConverter.printBase64Binary、parseBase64Binary用法
byte[] parseBase64Binary(String) //就是将Base64编码后的String还原成字节数组。String printBase64Binary(byte[]) //就是将字节数组做base64编码。注意:传给printBase64Binary 的参数是 str.getBytes(),而不是 str 本身。DatatypeConverter单元中封装了对base64编码的一些操作。printXXX 的函数就是encode。parseXXX 的函数就是decode。转载 2023-01-06 13:37:57 · 2934 阅读 · 0 评论 -
java 的各种日期计算。
间隔多少 天 小时,分钟,秒。给某个日期增加 num 秒。计算两个日期之间的间隔 数字。原创 2022-09-26 11:30:11 · 296 阅读 · 0 评论 -
spring项目启动时执行任务
在我们写代码的时候,很多时候难免碰到一些需求是需要我们在项目启动的时候来 启动线程/读取缓存/开启某个服务等等操作,这时候难免会犹豫该怎么做,究竟在哪里执行这个操作?是加载spring bean的时候?还是项目刚启动的时候?接下来我会介绍几种方法来实现spring项目启动时执行任务。假设一个简单的需求,在项目启动时需要把产品的编号与对应的产品名称缓存到一个Map里面,程序中要用的时候就直接从这个Map里面拿。先上代码再来分析: 在使用缓存的时候直接调用getProduct(int num)即可,在代转载 2022-08-15 20:06:25 · 2185 阅读 · 2 评论 -
SpringBoot 上传excel文件并处理,包括大批量数据文件
这是因为的HSSXSS类只能支持10000000长度的字符串处理,那么这里我们就要换一种poi的处理方式。前面提供了一种excel文件上传服务器后端处理的防范。但是指适用于10m以内的文件使用。普通小文件前端使用了vue带ajaxPost将文件转码base64Str字符串的方式来传送文件到后端服务器上。这里是将excel格式文件转换层xml来处理对于有兴趣了解xlsx文件格式的朋友可以深入了解一下期原理。这样文件就传到服务器后端进行业务逻辑处理了。......原创 2022-07-23 22:29:15 · 3522 阅读 · 3 评论 -
mybatis 的批量更新和批量插入记录
中批量更新有很多种方法,可以把数据一条条更新,也可以传入一个数据集一次性更新,对于数据量不多的情况下(只有几千条)这种一次性更新就可以。数据量多可以使用多线程将数据分成多个集合后进行数据分批更新。方法3.批量foreach插入。方法2.batch模式。方法1.for循环插入。......原创 2022-07-20 23:34:31 · 938 阅读 · 0 评论 -
spring boot + mybatis + maven 构建新工程
公司转型,新项目需要用java作为老员工,也只能转型了,最近开始重新捡起java多年不碰了新构架新的开始。至少jdbchss还会学一下新框架springboot,mybatis吧,maven是真好用啊。新构架在磕磕绊绊中基本入门了。时间有限就不深入研究了。等有空了去看看构架的文档吧,反正常用的功能都能用了可以开始开发web项目了。开工咯。遇到坑在学校总结吧。httpshttpshttpshttpshttpshttpshttpshttpshttps。...原创 2022-07-17 12:52:06 · 1188 阅读 · 0 评论 -
SqlSessionFactory
1.SqlSessionFactory是MyBatis的关键对象,它是个单个数据库映射关系经过编译后的内存镜像。2.SqlSessionFactory对象的实例可以通过SqlSessionFactoryBuilder对象类获得,而SqlSessionFactoryBuilder则可以从XML配置文件或一个预先定制的Configuration的实例构建出SqlSessionFactory的实例。3.每一个MyBatis的应用程序都以一个SqlSessionFactory对象的实例为核心。......转载 2022-07-16 14:03:03 · 802 阅读 · 0 评论 -
Mybatis中 mapperXML 中 jdbcType 的类型对比 javaType
jdbctype类型有:REAL 、VARCHAR 、BINARY 、BIT、FLOAT、CHAR 、TIMESTAMP 、 OTHER 、UNDEFINEDTINYINT 、BLOB NVARCHAR、SMALLINT 、DOUBLE 、DECIMAL 、TIME 、NULL、CURSOR、LONGVARCHAR 、VARBINARY 、CLOB、NCHAR、INTEGER、 NUMERIC、DATE 、LONGVARBINARY 、BOOLEAN 、NCLOB、BIGINTjdbcType与javaTy转载 2022-07-14 16:07:10 · 1920 阅读 · 0 评论 -
springboot 连接 sqlserver2016 时遇到驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接”错误
在使用Open JDK 17,SQL Server 2016,springboot,Mybatis 项目中使用操作数据库。测试环境连接数据库的时候出现如题所示“驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接”错误,解决方案参考StackOverflow。1)打开JAVA_HOME/conf/security/java.security2)查询jdk.tls.disabledAlgorithms3)修改jdk.tls.disabledAlgorithms=SSLv3,原创 2022-07-07 20:34:30 · 1293 阅读 · 0 评论 -
Maven聚合工程搭建Springboot项目
众所周知,maven可以管理项目依赖,但很多人忽视了maven的另一项重要功能——使用maven搭建聚合工程。这里使用maven搭建一个springboot的聚合工程作为案例,整合Lombok、Spring MVC、Druid、Mybatis。案例下载链接:springboot的maven聚合工程操作步骤:1.使用idea新建项目2.直接构建maven工程,作为一个父工程,用于管理依赖版本,同时作为子模块容器 3.由于父工程只作为子模块的容器,因此不需要src目录,直接删掉。(当然,不删除也不影响)转载 2022-07-05 12:50:19 · 1390 阅读 · 0 评论 -
centos 安装java环境的多种方法
下载jkd17Java Downloads | Oracle用ftp工具上传到 centos 服务器将下载好的jdk-17_linux-x64_bin.rpm上传到CentOs上去使用rpm命令安装: rpm -ivh jdk-17_linux-x64_bin.rpm原创 2022-06-26 12:07:21 · 2072 阅读 · 0 评论 -
java 日积月累
1.java 取整向上取整Math.ceil();Math.ceil(11.4)=12; Math.ceil(-11.6)=-11;向下取整Math.floor();Math.floor(11.7)=11;Math.floor(-11.2)=-12;四舍五入Math.round();Math.round(11.5)=12;Math.round(-11.5)=-11;原创 2022-04-12 16:59:00 · 438 阅读 · 0 评论 -
Hibernate关联映射(非常详细)
在前面的学习中,我们所涉及的都是基于单表的操作,但在实际的开发过程中,基本上都是同时对多张表的操作,且这些表都存在一定的关联关系。Hibernate 是一款基于 ORM 设计思想的框架,它将关系型数据库中的表与我们 Java 实体类进行映射,表中的记录对应实体类的对象,而表中的字段对应着实体类中的属性。Hibernate 进行增删改查等操作时,不再直接操作数据库表,而是对与之对应的实体类对象进行处理。那么,Hibernate 是如何处理多表关联问题的呢?本节我们针对此问题进行介绍。关联映射在关系型转载 2022-02-12 19:40:27 · 1652 阅读 · 0 评论 -
Hibernate核心接口(5个)
在 Hibernate 中有 5 个常用的核心接口,它们分别是 Configuration 接口、SessionFactory 接口、Session 接口、Transaction 接口和 Query 接口。本节,我们就对这 5 个核心接口进行详细讲解。1. Configuration正如其名,Configuration 主要用于管理 Hibernate 配置信息,并在启动 Hibernate 应用时,创建 SessionFactory 实例。在 Hibernate 应用启动时,需要获取一些基本信息转载 2022-02-12 18:50:34 · 742 阅读 · 0 评论 -
Hibernate工作原理(图解)|| hibernate.cfg.xml(Hibernate核心配置文件)|| Hibernate映射文件(Xxx.hbm.xml)
在Hibernate操作数据库一节的学习中,我们主要涉及到了 Configuration、SessionFactory、Session、Transaction 和 Query 等多个接口,这些接口在 Hibernate 运行时都扮演着十分重要的角色,本节我们就来介绍以一下 Hibernate 运行时的工作原理。关于Configuration、SessionFactory、Session、Transaction 和 Query等接口的使用,我们会在Hibernate 的核心接口一节中进行详细的讲...转载 2022-02-12 18:09:35 · 1328 阅读 · 0 评论 -
Hibernate增删改查操作(CRUD)
接下来,我们将介绍 Hibernate 是如何实现对数据库的增删改查(CRUD)操作的。插入记录Hibernate 在 Session 接口中为我们提供了一个 save() 方法,该方法可以向据库表中插入记录。1. 在测试类 MyTest 中,创建一个名称为 testInsert 的方法,代码如下。/*** 保存数据*/@Testpublic void testInsert() { //加载 Hibernate 核心配置文件 Configuration configu转载 2022-02-12 17:29:46 · 4440 阅读 · 2 评论 -
Hibernate项目创建流程(IDEA版)
本节我们将演示如何搭建一个 Hibernate 工程。搭建 Hibernate 工程需要以下 7 步:下载 Hibernate 开发包 新建工程 创建数据库表 创建实体类 创建映射文件 创建 Hibernate 核心配置文件 测试1. 下载 Hibernate 开发包浏览器访问Hibernate 官网下载 Hibernate(以 hibernate-release-5.5.3.Final 为例)开发包。目录介绍下载完成后,解压 hibernate-release-5.5...转载 2022-02-12 17:19:43 · 1839 阅读 · 0 评论 -
Spring Boot自定义starter
starter 是 SpringBoot 中一种非常重要的机制,它可以繁杂的配置统一集成到 starter 中,我们只需要通过 maven 将 starter 依赖引入到项目中,SpringBoot 就能自动扫描并加载相应的默认配置。starter 的出现让开发人员从繁琐的框架配置中解放出来,将更多的精力专注于业务逻辑的开发,极大的提高了开发效率。在一些特殊情况下,我们也可以将一些通用功能封装成自定义的 starter 进行使用,本节我们将为您详细介绍如何自定义 starter。命名规范Sprin转载 2022-02-12 16:03:30 · 380 阅读 · 0 评论 -
Spring Boot整合MyBatis
MyBatis 是一个半自动化的 ORM 框架,所谓半自动化是指 MyBatis 只支持将数据库查出的数据映射到 POJO 实体类上,而实体到数据库的映射则需要我们自己编写 SQL 语句实现,相较于Hibernate 这种完全自动化的框架,Mybatis 更加灵活,我们可以根据自身的需求编写 sql 语句来实现复杂的数据库操作。随着 Spring Boot 越来越流行,越来越多的被厂商及开发者所认可,MyBatis 也开发了一套基于 Spring Boot 模式的 starter:mybatis-spri转载 2022-02-12 15:36:42 · 121 阅读 · 0 评论 -
Spring Boot整合Druid数据源
Spring Boot 2.x 默认使用 HikariCP 作为数据源,我们只要在项目中导入了 Spring Boot 的 JDBC 场景启动器,便可以使用 HikariCP 数据源获取数据库连接,对数据库进行增删改查等操作。HikariCP 是目前市面上性能最好的数据源产品,但在实际的开发过程中,企业往往更青睐于另一款数据源产品:Druid,它是目前国内使用范围最广的数据源产品。Druid 是阿里巴巴推出的一款开源的高性能数据源产品,Druid 支持所有 JDBC 兼容的数据库,包括 Oracle、M转载 2022-02-12 15:12:32 · 1244 阅读 · 0 评论 -
Spring Boot数据源配置原理
在数据库访问过程中,“数据源”无疑是最重要的概念之一,它不仅可以对与数据库访问相关的各种参数进行封装和统一管理,还可以管理数据库连接池,提高数据库连接性能。目前,在市面上有很多优秀的开源数据源,例如 DBCP、C3P0、Druid、HikariCP 等等。在 Spring Boot 2.x 中,则采用目前性能最佳的 HikariCP 作为其默认数据源。接下来,我们就来具体介绍下 Spring Boot 的默认数据源配置及其原理。DataSourceAutoConfiguration我们知道,Spr转载 2022-02-12 14:05:54 · 449 阅读 · 0 评论 -
Spring Boot JDBC访问数据库
对于数据访问层,无论是 SQL(关系型数据库) 还是 NOSQL(非关系型数据库),Spring Boot 都默认采用整合 Spring Data 的方式进行统一处理,通过大量自动配置,来简化我们对数据访问层的操作,我们只需要进行简单的设置即可实现对书层的访问。本节,我们将学习如何在 Spring Boot 中使用 JDBC 进行数据访问。导入 JDBC 场景启动器Spring Boot 将日常企业应用研发中的各种场景都抽取出来,做成一个个的场景启动器(Starter),场景启动器中整合了该场景下各转载 2022-02-12 10:58:49 · 271 阅读 · 0 评论 -
Spring Boot注册Web原生组件(Servlet、Filter、Listener)
由于 Spring Boot 默认以 Jar 包方式部署的,默认没有 web.xml,因此无法再像以前一样通过 web.xml 配置来使用 Servlet 、Filter、Listener,但 Spring Boot 提供了 2 种方式来注册这些 Web 原生组件。通过组件扫描注册使用 RegistrationBean 注册通过组件扫描注册Servlet 3.0 提供了以下 3 个注解:@WebServlet:用于声明一个 Servlet; @WebFilter:用于声明一个 Filter转载 2022-02-11 21:57:33 · 185 阅读 · 0 评论 -
Spring Boot全局异常处理
我们知道 Spring Boot 已经提供了一套默认的异常处理机制,但是 Spring Boot 提供的默认异常处理机制却并不一定适合我们实际的业务场景,因此,我们通常会根据自身的需要对 Spring Boot 全局异常进行统一定制,例如定制错误页面,定制错误数据等。定制错误页面我们可以通过以下 3 种方式定制 Spring Boot 错误页面:自定义error.html 自定义动态错误页面 自定义静态错误页面自定义 error.html我们可以直接在模板引擎文件夹(/resourc.转载 2022-02-11 21:24:48 · 338 阅读 · 0 评论 -
Spring Boot默认异常处理
在日常的 Web 开发中,会经常遇到大大小小的异常,此时往往需要一个统一的异常处理机制,来保证客户端能接收较为友好的提示。Spring Boot 同样提供了一套默认的异常处理机制,本节将对它进行详细的介绍。Spring Boot 默认异常处理机制Spring Boot 提供了一套默认的异常处理机制,一旦程序中出现了异常,Spring Boot 会自动识别客户端的类型(浏览器客户端或机器客户端),并根据客户端的不同,以不同的形式展示异常信息。1. 对于浏览器客户端而言,Spring Boot 会响应转载 2022-02-11 20:42:08 · 421 阅读 · 0 评论 -
Spring Boot拦截器精讲
我们对拦截器并不陌生,无论是 Struts 2 还是 Spring MVC 中都提供了拦截器功能,它可以根据 URL 对请求进行拦截,主要应用于登陆校验、权限验证、乱码解决、性能监控和异常处理等功能上。Spring Boot 同样提供了拦截器功能。在 Spring Boot 项目中,使用拦截器功能通常需要以下 3 步:定义拦截器; 注册拦截器; 指定拦截规则(如果是拦截所有,静态资源也会被拦截)。定义拦截器在 Spring Boot 中定义拦截器十分的简单,只需要创建一个拦截器类,并实现..转载 2022-02-10 16:29:46 · 233 阅读 · 0 评论 -
Spring Boot国际化
国际化(Internationalization 简称 I18n,其中“I”和“n”分别为首末字符,18 则为中间的字符数)是指软件开发时应该具备支持多种语言和地区的功能。换句话说就是,开发的软件需要能同时应对不同国家和地区的用户访问,并根据用户地区和语言习惯,提供相应的、符合用具阅读习惯的页面和数据,例如,为中国用户提供汉语界面显示,为美国用户提供提供英语界面显示。在 Spring 项目中实现国际化,通常需要以下 3 步:编写国际化资源(配置)文件; 使用 ResourceBundleMessag转载 2022-02-10 16:24:00 · 3374 阅读 · 0 评论 -
Spring Boot整合Thymeleaf
Spring Boot 推荐使用 Thymeleaf 作为其模板引擎。SpringBoot 为 Thymeleaf 提供了一系列默认配置,项目中一但导入了 Thymeleaf 的依赖,相对应的自动配置 (ThymeleafAutoConfiguration 或 FreeMarkerAutoConfiguration) 就会自动生效,因此 Thymeleaf 可以与 Spring Boot 完美整合 。Spring Boot 整合 Thymeleaf 模板引擎,需要以下步骤:引入 Starter 依赖转载 2022-02-10 16:15:09 · 414 阅读 · 0 评论 -
Thymeleaf教程(10分钟入门)
Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎。它与 JSP,Velocity,FreeMaker 等模板引擎类似,也可以轻易地与 Spring MVC 等 Web 框架集成。与其它模板引擎相比,Thymeleaf 最大的特点是,即使不启动 Web 应用,也可以直接在浏览器中打开并正确显示模板页面 。1. Thymeleaf 简介Thymeleaf 是新一代 Java 模板引擎,与 Velocity、FreeMarker 等传统 Java 模板引擎不同,Thyme转载 2022-02-09 21:57:16 · 8258 阅读 · 0 评论 -
Spring Boot定制Spring MVC
Spring Boot 抛弃了传统 xml 配置文件,通过配置类(标注 @Configuration 的类,相当于一个 xml 配置文件)以 JavaBean 形式进行相关配置。Spring Boot 对 Spring MVC 的自动配置可以满足我们的大部分需求,但是我们也可以通过自定义配置类(标注 @Configuration 的类)并实现 WebMvcConfigurer 接口来定制 Spring MVC 配置,例如拦截器、格式化程序、视图控制器等等。SpringBoot 1.5 及以前是.转载 2022-02-09 21:24:21 · 376 阅读 · 1 评论 -
Spring Boot静态资源映射
在 Web 应用中会涉及到大量的静态资源,例如 JS、CSS 和 HTML 等。我们知道,Spring MVC 导入静态资源文件时,需要配置静态资源的映射;但在 SpringBoot 中则不再需要进行此项配置,因为 SpringBoot 已经默认完成了这一工作。Spring Boot 默认为我们提供了 3 种静态资源映射规则:WebJars 映射 默认资源映射 静态首页(欢迎页)映射WebJars 映射为了让页面更加美观,让用户有更多更好的体验,Web 应用中通常会使用大量的 JS 和 CS转载 2022-02-09 09:12:58 · 3308 阅读 · 0 评论 -
spring-boot-starter-web(Web启动器)
Spring MVC 是 Spring 提供的一个基于 MVC 设计模式的轻量级 Web 开发框架,其本身就是 Spring 框架的一部分,可以与 Spring 无缝集成,性能方面具有先天的优越性,是当今业界最主流的 Web 开发框架之一。Spring Boot 是在 Spring 的基础上创建一款开源框架,它提供了 spring-boot-starter-web(Web 场景启动器) 来为 Web 开发予以支持。spring-boot-starter-web 为我们提供了嵌入的 Servlet 容器.转载 2022-02-09 08:59:29 · 16348 阅读 · 0 评论 -
Spring Boot日志配置及输出
通过上节的学习,我们了解了 Spring Boot 日志框架的选用及统一,本节我们将重点介绍 Spring Boot 日志的配置及输出。默认配置Spring Boot 默认使用 SLF4J+Logback 记录日志,并提供了默认配置,即使我们不进行任何额外配,也可以使用 SLF4J+Logback 进行日志输出。常见的日志配置包括日志级别、日志的输入出格式等内容。日志级别日志的输出都是分级别的,当一条日志信息的级别大于或等于配置文件的级别时,就对这条日志进行记录。常见的日志级别如下(优.转载 2022-02-09 08:51:46 · 8823 阅读 · 1 评论 -
Spring Boot统一日志框架
在项目开发中,日志十分的重要,不管是记录运行情况还是定位线上问题,都离不开对日志的分析。在 Java 领域里存在着多种日志框架,如 JCL、SLF4J、Jboss-logging、jUL、log4j、log4j2、logback等等。日志框架的选择市面上常见的日志框架有很多,它们可以被分为两类:日志门面(日志抽象层)和日志实现,如下表。市面上常见的日志框架有很多,它们可以被分为两类:日志门面(日志抽象层)和日志实现,如下表。日志分类 描述 举例 日志门面(日志抽象层)..转载 2022-02-08 22:14:21 · 336 阅读 · 0 评论 -
Spring Boot自动配置原理
我们知道,Spring Boot 项目创建完成后,即使不进行任何的配置,也能够顺利地运行,这都要归功于 Spring Boot 的自动化配置。Spring Boot 默认使用 application.properties 或 application.yml 作为其全局配置文件,我们可以在该配置文件中对各种自动配置属性(server.port、logging.level.* 、spring.config.active.no-profile 等等)进行修改,并使之生效,那么您有没有想过这些属性是否有据可依呢?转载 2022-02-07 22:00:03 · 224 阅读 · 0 评论 -
Spring Boot配置加载顺序
Spring Boot 不仅可以通过配置文件进行配置,还可以通过环境变量、命令行参数等多种形式进行配置。这些配置都可以让开发人员在不修改任何代码的前提下,直接将一套 Spring Boot 应用程序在不同的环境中运行。Spring Boot 配置优先级以下是常用的 Spring Boot 配置形式及其加载顺序(优先级由高到低):命令行参数 来自 java:comp/env 的 JNDI 属性 Java 系统属性(System.getProperties()) 操作系统环境变量 Rando转载 2022-02-07 17:31:03 · 636 阅读 · 0 评论 -
Spring Boot外部配置文件
除了默认配置文件,Spring Boot 还可以加载一些位于项目外部的配置文件。我们可以通过如下 2 个参数,指定外部配置文件的路径:spring.config.location spring.config.additional-locationspring.config.location我们可以先将 Spring Boot 项目打包成 JAR 文件,然后在命令行启动命令中,使用命令行参数 --spring.config.location,指定外部配置文件的路径。java -jar {..转载 2022-02-07 14:08:22 · 5083 阅读 · 0 评论 -
Spring Boot默认配置文件
通常情况下,Spring Boot 在启动时会将 resources 目录下的 application.properties 或 apllication.yml 作为其默认配置文件,我们可以在该配置文件中对项目进行配置,但这并不意味着 Spring Boot 项目中只能存在一个 application.properties 或 application.yml。默认配置文件Spring Boot 项目中可以存在多个 application.properties 或 apllication.yml。S转载 2022-02-07 13:45:53 · 1396 阅读 · 0 评论 -
Spring Boot Profile(多环境配置)
在实际的项目开发中,一个项目通常会存在多个环境,例如,开发环境、测试环境和生产环境等。不同环境的配置也不尽相同,例如开发环境使用的是开发数据库,测试环境使用的是测试数据库,而生产环境使用的是线上的正式数据库。Profile 为在不同环境下使用不同的配置提供了支持,我们可以通过激活、指定参数等方式快速切换环境。多 Profile 文件方式Spring Boot 的配置文件共有两种形式:.properties 文件和 .yml 文件,不管哪种形式,它们都能通过文件名的命名形式区分出不同的环境的配置,文转载 2022-02-02 21:19:59 · 2846 阅读 · 0 评论