log4j

SpringBoot集成Lombok,应用+源码解析,让代码优雅起来

与世无争的帅哥 提交于 2020-05-02 19:18:44
一、Lombok简介      (1)Lombok官网( https://projectlombok.org/ )对lombok的介绍   (2)GitHub项目地址: https://github.com/rzwitserloot/lombok   虽然是生硬的翻译,大家也大致可以看到Lombok存在的价值和意义,Lombok主要是可以提高开发效率,让我们这些小码农们工作时可以偷懒,让我们不再编写很多臃肿而定式的代码,虽然现在我们使用IDE工具可以生成很多,但是频繁的生成也会让我们的实体类看起来非常的臃肿。Lombok正是我们这些处于水深火热中的小码农的福音。 二、Lombok存在的意义:   (1)简化冗余的JavaBean代码,使得实体文件很简洁;   (2)便捷的生成比较复杂的代码,例如一个POJO要转化成构建器模式的形式,只需要一个注解。 三、Lombok有哪些注解,他们的作用分别是什么?   a)Lombok的注解概览   b)下面对每个注解进行一一总结,如下:     1、@NotNull     ①详细介绍:这个注解可以用在 成员方法或者构造方法的参数 前面,会自动产生一个关于此参数的非空检查,如果参数为空,则抛出一个空指针异常。     ②栗子:     编译前: //成员方法参数加上@NonNull注解 public String getName(

JVM反调调用优化,导致发生大量异常时log4j2线程阻塞

本秂侑毒 提交于 2020-05-02 19:17:40
背景 在使用log4j2打日志时,当发生大量异常时,造成大量线程block问题的问题。 一个关于log4j2的高并发问题: https://blog.fliaping.com/a-high-concurrency-problem-of-log4j2/ 大量线程block原因 发生异常,打印异常栈时,会调用org.apache.logging.log4j.core.impl.ThrowableProxy.toExtendedStackTrace方法。 ThrowableProxy.toExtendedStackTrace内部会进行loadClass操作。 并且可以看到ClassLoader的loadClass在加载类时 1)首先会持有锁。 2)调用findLoadedClass看下是否类已经被加载过了 3)如果类没被加载过,根据双亲委派模型去加载类。 可以看到当某个类被加载过了,调用findLoadedClass会直接返回,锁也会被很快释放掉,无需经过双亲委派等后面的一系列步骤。 但是,在进行反射调用时,JVM会进行优化,会动态生成名为sun.reflect.GeneratedMethodAccessor<N>的类,这个类无法通过ClassLoader.loadClass方法加载(为什么无法通过ClassLoader.loadClass加载

SSM(Spring+SpringMVC+Mybatis)框架环境搭建(整合步骤)(一)

自闭症网瘾萝莉.ら 提交于 2020-05-02 07:33:11
1. 前言 最近在写毕设过程中,重新梳理了一遍SSM框架,特此记录一下。 附上源码: https://gitee.com/niceyoo/jeenotes-ssm 2. 概述 在写代码之前我们先了解一下这三个框架分别是干什么的? SpringMVC:它用于web层,相当于controller(等价于传统的servlet和struts的action),用来处理用户请求。举个例子,用户在地址栏输入http://网站域名/login,那么springmvc就会拦截到这个请求,并且调用controller层中相应的方法,(中间可能包含验证用户名和密码的业务逻辑,以及查询数据库操作,但这些都不是springmvc的职责),最终把结果返回给用户,并且返回相应的页面(当然也可以只返回json/xml等格式数据)。springmvc就是做前面和后面过程的活,与用户打交道!! Spring:太强大了,以至于我无法用一个词或一句话来概括它。但与我们平时开发接触最多的估计就是IOC容器,它可以装载bean(也就是我们java中的类,当然也包括service dao里面的),有了这个机制,我们就不用在每次使用这个类的时候为它初始化,很少看到关键字new。另外spring的aop,事务管理等等都是我们经常用到的。 MyBatis:如果你问我它跟鼎鼎大名的Hibernate有什么区别?我只想说

(4)Maven快速入门_4在Spring+SpringMVC+MyBatis+Oracle+Maven框架整合运行在Tomcat8中

99封情书 提交于 2020-05-02 07:15:53
利用Maven 创建Spring+SpringMVC+MyBatis+Oracle 项目 分了三个项目 Dao (jar) Service (jar) Controller (web) 工程下载地址: https://pan.baidu.com/s/1Q9I6V9Mlw47Eua18N9do3Q 密码 1kbs 遇到的几个坑: 1、oracle 的数据库连接jar Maven库中不存在!!! Missing artifact com.oracle:ojdbc6 :jar:11.2.0 需要 手动下载ojdbc 然后编译安装到本地maven仓库 :Windows(7) 系统运行 cmd 打开 DOS 窗口,进入 Oracle JDBC 驱动包所在的目录,执行命令 mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion= 11.2 . 0 -Dpackaging=jar -Dfile=ojdbc6.jar 参考解决此问题的文章地址: Missing artifact com.oracle:ojdbc14:jar:10.2.0.4.0 解决方案 如果还报 驱动找不到 Could not load JDBC driver class [oracle.jdbc.OracleDriver] 则直接把

log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader).

牧云@^-^@ 提交于 2020-05-01 16:17:38
ssm项目tomcat启动后报以下问题 log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader). log4j:WARN Please initialize the log4j system properly. 解决办法: 1.log4j.properties的内容应该是 # Configure logging for testing: optionally with log file log4j.rootLogger = WARN, stdout # log4j.rootLogger = WARN, stdout, logfile log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout = org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern =%d %p [%c] - %m% n log4j.appender.logfile = org.apache.log4j.FileAppender log4j.appender

Java多线程之ThreadPoolExecutor详解使用

浪子不回头ぞ 提交于 2020-05-01 07:28:44
1、概述 我将讲解JAVA原生线程池的基本使用,并由此延伸出JAVA中和线程管理相关的类结构体系,然后我们详细描述JAVA原生线程池的结构和工作方式 2、为什么要使用线程池 前文我们已经讲到,线程是一个操作系统概念。操作系统负责这个线程的创建、挂起、运行、阻塞和终结操作。而操作系统创建线程、切换线程状态、终结线程都要进行CPU调度。 另一方面,目前大多数生产环境我们所面临问题的技术背景一般是:处理某一次请求的时间是非常短暂的,但是请求数量是巨大的。这种技术背景下,如果我们为每一个请求都单独创建一个线程,那么物理机的所有资源基本上都被操作系统创建线程、切换线程状态、销毁线程这些操作所占用,用于业务请求处理的资源反而减少了。所以最理想的处理方式是,将处理请求的线程数量控制在一个范围,既保证后续的请求不会等待太长时间,又保证物理机将足够的资源用于请求处理本身。 另外,一些操作系统是有最大线程数量限制的。当运行的线程数量逼近这个值的时候,操作系统会变得不稳定。这也是我们要限制线程数量的原因。 3、线程池的基本使用方式 JAVA语言为我们提供了两种基础线程池的选择:ScheduledThreadPoolExecutor和ThreadPoolExecutor。它们都实现了ExecutorService接口(注意,ExecutorService接口本身和“线程池”并没有直接关系,它的定义更接近

MyBatis

笑着哭i 提交于 2020-04-29 17:40:05
方法一: 在mybatis-config.xml中配置加一个setting <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <settings> <!-- 打印查询语句 --> <setting name="logImpl" value="STDOUT_LOGGING" /> </settings> </configuration> 如果是spring集成mybatis的话,在sqlSessionFactory配置好configLocation属性 <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="configLocation" value="classpath:conf/mybatis-config.xml"></property> <!--

JAVAEE——BOS物流项目01:学习计划、搭建环境、主页设计(jQuery EasyUI)

送分小仙女□ 提交于 2020-04-29 12:00:35
1 学习 计划 1 、项目概述   项目背景介绍 2 、搭建项目开发环境   数据库环境   maven 项目搭建   svn 环境搭建 3 、主页设计( jQuery EasyUI )   layout 页面布局   accordion 折叠面板   tabs 选项卡面板 2 项目概述 2.1 项目背景介绍 本项目属于物流公司的二期改造项目。物流公司存在一个一期项目(基于 C/S 架构),用 C++ 开发的。 项目甲方:物流公司(软件的使用方) 项目乙方:软件公司(软件的开发方) 软件的开发周期 13 个月,编码阶段 4 个月时间,开发团队人数 20 多个人。 BOS : Bussiness Operating System 业务操作系统 2.2 常见的软件类型 OA: 办公自动化系统 CRM: 客户关系管理系统 ERP: 综合的企业解决方案(平台) 2.3 软件的开发流程(瀑布模型) 1 、需求调研分析 ---- 需求规格说明书 2 、设计阶段(概要设计、详细设计) ---- 页面原型、数据库设计、设计文档 3 、编码阶段 4 、测试阶段 5 、上线和运维 3 搭建项目开发环境 3.1 数据库环境 第一步:创建一个数据库 第二步:创建一个数据库用户 第三步:为新用户授权 第四步:使用新用户登录 MySQL 3.2 maven 项目环境 使用 maven 是

mycat linux上目录介绍

為{幸葍}努か 提交于 2020-04-28 11:18:38
1.本文引用来自mycat官方文档,具体可以浏览mycat官网 2.linux系统下面的目录 MyCAT 有提供编译好的安装包,支持 windows、Linux、Mac、Solaris 等系统上安装与运行。 linux 下可以下载 Mycat-server-xxxxx.linux.tar.gz 解压在某个目录下,注意目录不能有空格,在 Linux(Unix)下,建议放在 usr/local/Mycat 目录下,如下: 下面是修改 MyCAT 用户密码的方式(仅供参考): 目录解释如下: bin 程序目录,存放了 window 版本和 linux 版本,除了提供封装成服务的版本之外,也提供了 nowrap 的 shell 脚本命令,方便大家选择和修改,进入到 bin 目录: Linux 下运行:./mycat console,首先要 chmod +x * 注:mycat 支持的命令{ console | start | stop | restart | status | dump } conf 目录下存放配置文件, server.xml 是 Mycat 服务器参数调整和用户授权的配置文件, schema.xml 是逻 辑库定义和表以及分片定义的配置文件, rule.xml 是分片规则的配置文件,分片规则的具体一些参数信息单独存放为文件,也在这个目录下,配置文件修改,需要重启

SSM+easyUI(框架的搭建)

∥☆過路亽.° 提交于 2020-04-28 06:28:42
1.首先贴出我的项目结构: 2.maven 依赖所需要的jar包,从pom.xml中下载获得: pom.xml中的依赖: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation ="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.zsl.hnust</groupId> <artifactId>HNUST</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>HNUST</name> <url>http: // maven.apache.org</url> <properties> <!-- spring版本号 --> <spring.version>4.0.2.RELEASE</spring.version> <!-- mybatis版本号 --> <mybatis.version>3.2