快捷搜索:

boot中动用log4j记录日志皇家娱乐平台:,AOP的超

作者: 手机赌钱游戏大全  发布:2019-10-05
package com.tony.controller;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.ResponseBody;import com.tony.service.UserService;@Controller@RequestMappingpublic class TestAction { @Autowired private UserService userService; @RequestMapping("/greeting") @ResponseBody public Object hello(){ return "Hello Spring"; } @ResponseBody @RequestMapping public Object get(@RequestParam String id){ return userService.findOne; }}

官网络的那篇小说:Caching Data with Spring,陈诉了Spring Boot中提供的对Cache操作的支撑,特别简单!

public class User { private String username; private String classname; private String stuno; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getClassname() { return classname; } public void setClassname(String classname) { this.classname = classname; } public String getStuno() { return stuno; } public void setStuno(String stuno) { this.stuno = stuno; }}

在引进了log4j信赖之后,只须要在src/main/resources目录下步向log4j.properties安排文件,就足以发轫对采纳的日志实行布署利用。

安排运转类

Dubbo提供了贰个起步类com.alibaba.dubbo.container.Main,在Dubbo的品类中,大大多都以使用那么些类运营项目标,而那一个类中会加载比比较多的容器,其中最要紧的正是SpringContainer,那一个类会读取系统中有关的spring配置。

而在Spring Boot的类别中,则是随意写二个开行类,然后加注明@SpringBootApplication在那个类以上,让spring boot能够开掘这一个类,并运维这些类的main方法。

Spring Boot的统一筹算中,推荐我们使用无XML配置的诀窍运营项目,但多数类别由于各样缘由很难摆脱XML的羁绊,这种状态下,使用@ImportResource评释引进xml配置,在@ImportResource中填入需求引进的安插:

@ImportResource({"classpath:spring-context.xml"})

@ImportResource会自动去查找resource目录下的文件并引进Spring Boot

经接着,大家要求减轻运维类中main()办法的难题,日常景色下,大家写的启航类会利用:

SpringApplication.run(DemoApplication.class, args);

但鉴于Dubbo项目援用了Spring Web框架中的一些类,使得Maven也只可以导入Spring Web项目,了而Spring Boot发觉跟web相关的框架就能够去运营web容器(比方TomcatJetty等),并且大家的安排是未有增添容器的,所以main()艺术要求写成:

ApplicationContext ctx = new SpringApplicationBuilder() .sources(DemoApplication.class) .web // 没错,把项目设置成非web环境 .run;

还索要小心的是,由于采用了十二分纯粹的starter,並且Dubbo的互连网框架也是非阻塞的,所以大家还需选取一些措施,保持主线程的阻塞状态。举个例子作者动用CountDownLatch来做那事。最后形成了以下运维类的完全代码:

@SpringBootApplication@ImportResource({"classpath:spring/spring-context.xml"})public class DemoApplication { private static final Logger logger = LoggerFactory.getLogger(DemoApplication.class); @Bean public CountDownLatch closeLatch() { return new CountDownLatch; } public static void main(String[] args) throws InterruptedException { ApplicationContext ctx = new SpringApplicationBuilder() .sources(DemoApplication.class) .web .run; logger.info; CountDownLatch closeLatch = ctx.getBean(CountDownLatch.class); closeLatch.await(); }}

好了那么些类营造达成未来,大家根据Dubbo的艺术安排好service,就能够打包了。

UserMapper.xml

Java中的万分等级次序连串如下图所示:

public class App { public static void main(String[] args) throws Exception { SpringApplication.run(SampleController.class, args); }}

利用他们各自优势,配置到壹头,能够补助大家营造出非常优良的微服务。

皇家娱乐平台 1exception barrier pattern.jpg

@RestController@EnableAutoConfigurationpublic class SampleController { @RequestMapping public List<User> home() { List<User> users = new ArrayList<User>(); for (int i = 0; i < 3; i++) { User user = new User(); user.setClassname; user.setStuno("10000" + i); user.setUsername; users.add; } return users; }}
#log4j.rootCategory=INFO, stdout, file# root日志输出log4j.appender.file=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.file.file=logs/all.loglog4j.appender.file.DatePattern='.'yyyy-MM-ddlog4j.appender.file.layout=org.apache.log4j.PatternLayoutlog4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %c{1}:%L - %m%n

配置Maven

选择的Dubbo的相似都是大型项目,maven项目营造也会接纳parent节点,Spring Boot思念到了这种气象,提供了dependencyManagement的方式,引入Spring Boot的包。

<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>1.3.5.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies></dependencyManagement>

在切实可行的starter采纳上,使用spring-boot-starter,那样spring-boot会只运行spring的铺排,而不会自动启用什么软件依旧是互连网服务器。

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId></dependency>

Maven的一些就安排完了

<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/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.tony</groupId> <artifactId>SecondMyBatisWithSB</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.2.3.RELEASE</version> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <!-- commons --> <commons-io.version></commons-io.version> <commons-lang3.version>3.4</commons-lang3.version> <!-- springMvc --> <spring-jdbc.version>4.1.6.RELEASE</spring-jdbc.version> <spring-tx.version>4.1.6.RELEASE</spring-tx.version> <spring-web.version>4.1.6.RELEASE</spring-web.version> <spring-webmvc>4.1.6.RELEASE</spring-webmvc> <spring-data-japa.version>1.8.0.RELEASE</spring-data-japa.version> <spring-test.version>4.1.6.RELEASE</spring-test.version> <aspectjweaver.version>1.8.5</aspectjweaver.version> <webmvc.version>2.2.2.RELEASE</webmvc.version> <!-- myBatis --> <mybatis.version>3.2.8</mybatis.version> <mybatis-generator-core.version>1.3.2</mybatis-generator-core.version> <mybatis-spring.version>1.2.2</mybatis-spring.version> <mysql-connector-java.version>5.1.34</mysql-connector-java.version> <!-- mybatis pagehelper --> <pagehelper.version>3.6.3</pagehelper.version> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>${commons-lang3.version}</version> </dependency> <!-- datasource heroku --> <dependency> <groupId>com.zaxxer</groupId> <artifactId>HikariCP-java6</artifactId> <exclusions> <exclusion> <artifactId>tools</artifactId> <groupId>com.sun</groupId> </exclusion> </exclusions> </dependency> <!-- aspectJ --> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> </dependency> <!-- Spring boot --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- myBatis --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>${mybatis.version}</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>${mybatis-spring.version}</version> </dependency> <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artifactId> <version>${mybatis-generator-core.version}</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <!-- mybatis pagehelper --> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>${pagehelper.version}</version> </dependency> <!-- Spring --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> </dependency> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-rest-webmvc</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> </dependency> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-commons</artifactId> </dependency> <dependency> <groupId>org.springframework.hateoas</groupId> <artifactId>spring-hateoas</artifactId> </dependency> <!-- javax --> <dependency> <groupId>javax.inject</groupId> <artifactId>javax.inject</artifactId> <version>1</version> </dependency> <dependency> <groupId>javax</groupId> <artifactId>javaee-api</artifactId> <version>7.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.glassfish.web</groupId> <artifactId>javax.servlet.jsp.jstl</artifactId> <version>1.2.2</version> </dependency> </dependencies> <build> <pluginManagement> <plugins> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.2</version> <configuration> <configurationFile>src/main/resources/mybatis-generator-config.xml</configurationFile> <verbose>true</verbose> <overwrite>true</overwrite> </configuration> <executions> <execution> <id>Generate MyBatis Artifacts</id> <goals> <goal>generate</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </pluginManagement> </build></project>

# Server settingsserver: port:8080 address:localhost# DATASOURCEjdbc: dataSourceClassName: com.mysql.jdbc.jdbc2.optional.MysqlDataSource url: jdbc:mysql://localhost:3306/test?useUnicode=true&charaterEncoding=utf-8 databaseName: test serverName: 127.0.0.1 username: root password: root cachePrepStmts: true prepStmtsSize: 250 prepStmtsCacheSqlLimit: 2048 userServerPrepStmts: true# SPRING PROFILESspring: # HTTP ENCODING http: encoding.charset: UTF-8 encoding.enable: true encoding.force: true# MyBatismybatis: typeAliasesPackage: com.tony.entity mapperLocations: classpath:/com/tony/mapper/*.xml configLocation: classpath:/mybatis-config.xml# LOGGINGlogging: level: com.ibatis:DEBUG

<?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> <properties> <property name="dialect" value="mysql" /> </properties> <settings> <!-- 这个配置使全局的映射器启用或禁用缓存。系统默认值是true,设置只是为了展示出来 --> <setting name="cacheEnabled" value="true" /> <!-- 全局启用或禁用延迟加载。当禁用时,所有关联对象都会即时加载。 系统默认值是true,设置只是为了展示出来 --> <setting name="lazyLoadingEnabled" value="true" /> <!-- 允许或不允许多种结果集从一个单独的语句中返回。 系统默认值是true,设置只是为了展示出来 --> <setting name="multipleResultSetsEnabled" value="true" /> <!--使用列标签代替列名。不同的驱动在这方便表现不同。参考驱动文档或充分测试两种方法来决定所使用的驱动。 系统默认值是true,设置只是为了展示出来 --> <setting name="useColumnLabel" value="true" /> <!--允许 JDBC 支持生成的键。需要适合的驱动。如果设置为 true 则这个设置强制生成的键被使用,尽管一些驱动拒绝兼容但仍然有效。 系统默认值是false,设置只是为了展示出来 --> <setting name="useGeneratedKeys" value="false" /> <!--配置默认的执行器。SIMPLE 执行器没有什么特别之处。REUSE 执行器重用预处理语句。BATCH 执行器重用语句和批量更新 系统默认值是SIMPLE,设置只是为了展示出来 --> <setting name="defaultExecutorType" value="SIMPLE" /> <!--设置超时时间,它决定驱动等待一个数据库响应的时间。 系统默认值是null,设置只是为了展示出来 --> <setting name="defaultStatementTimeout" value="25000" /> </settings> <plugins> <plugin interceptor="com.github.pagehelper.PageHelper"> <property name="dialect" value="mysql" /> <property name="offsetAsPageNum" value="true" /> <property name="rowBoundsWithCount" value="true" /> <property name="pageSizeZero" value="true" /> <property name="reasonable" value="true" /> </plugin> </plugins></configuration>

javax.servlet.Filter是Servlet标准为大家提供的一种AOP援助,通过它,大家得认为依靠Servlet的Web应用增多对应的能源访谈调节。基于Filter的Web应用的能源访问调节,仅仅是一定领域的平安全检查查供给,而透过AOP,大家得感到任何类型的使用加多安全协助。

  • 以Java Application直接运维App.java
  • 出于放置了tomcat,运营起来之后,间接通过浏览器访谈 就足以看看再次回到的 JSON 数据了 ~~ OK,完毕,是否非常的粗略

当我们日志量比较多的时候,查找难题会那么些不方便,常用的手段便是对日记举办分类,比方:

Dubbo() 是Ali的开源的一款遍及式服务框架。而Spring Boot则是Spring社区这三年从事于构建的简化Java配置的微服务框架。

package com.tony.service;import com.tony.entity.User;import com.tony.commons.service.BaseService;public interface UserService extends BaseService<User> { User findOneById(String Id);}

当系统中有七个地点可能抛出unchecked exception的时候,在引进Fault Barrier概念以前,我们恐怕会在各种调用的最顶层,分别增加分外管理逻辑对其进展管理;可是,unchecked exception可做的作业比比较少,平常正是记录日志、通告相应人士。所以,这么些同样的逻辑达成能够归并到一同打开联合管理,对于系统的Fault来讲,它实在正是一种横切关切点(cross-cutting concern)。

  • 开创Main函数,直接运营上述的 SampleController
  • 能够按区别package实行输出。通过定义输出到logs/my.log的appender,并对com.didispace包下的日记等级设定为DEBUG等级、appender设置为出口到logs/my.log的名为didifile的appender。

卷入陈设

Dubbo自身有贰个比较费心的难点就是在卷入铺排,从官方的demo上来看,Dubbo打包借助了maven插件assembly,而且要写过多的配备,而Spring Boot的工具相对来讲,大约无需其余的配备。在pom.xmlbuild节点下边,配置spring-boot-maven-plugin插件

<plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>1.3.5.RELEASE</version> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin></plugins>

命令行切换成项目标目录之后,试行命令:

mvn package

在target目录上面,会发出三个文件

皇家娱乐平台 2发生的多少个文本

demo-0.0.1-SNAPSHOT.jar拷贝到放肆贰个种类下运维:

皇家娱乐平台 3启动provider服务

对此Spring MVC框架,能够经过持续SimpleMappingExceptionResolver处理RuntimeException随同子类来营造fault barrier。通过覆写resolveException()艺术,在采用暗许方法路由央浼到八个通用的错误页面在此以前,你能够加多自定义的非常管理;对于3.x从此的版本,能够直接动用@ExceptionHandler讲解,完毕全局十三分管理效果。具体细节能够参见Spring MVC Exception Handling Example那篇作品。

  • 制造Controller,用 @RestController 能够间接再次来到JSON数据,@EnableAutoConfiguration 运转自动配置,无需张开复杂的xml的计划了,这里首若是回来三个 User 对象的 JSON 数组

在付出意况,我们只是输出到调节台没至极,不过到了生育或测量试验情况,也许长久化日志内容,方便追溯难题原因。能够由此足够如下的appender内容,按天输出到分化的文本中去,同一时间还索要为log4j.rootCategory增加名称为file的appender,那样root日志就能够输出到logs/all.log文本中了。

劳动调用

自己轻易地写了七个consumer的测验类,从consumer品类调用项目,也是足以安枕无忧调用到这些服务的。

皇家娱乐平台 4consumer测验结果

这年在provider端,也是能够consumer总的来看调用的情事 :

皇家娱乐平台 5`consumer`的调用处境

Bingo ! Dubbo running over the Spring Boot!

#=============================##======database setting=======##=============================## mysql database settingjdbc.type=mysqljdbc.driverClassName:com.mysql.jdbc.Driverjdbc.url:jdbc:mysql://127.0.0.1:3306/xxx?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=truejdbc.username=rootjdbc.password=root# pool settingsjdbc.pool.minIdle=8jdbc.pool.maxActive=100# mybatis generator settinggenerator.classPath=C:/Users/TonyJiang/.m2/repository/mysql/mysql-connector-java/5.1.38/mysql-connector-java-5.1.38.jargenerator.mapperConfigFilename=mapper-config.xmlgenerator.targetProject=SecondMyBatisWithSBgenerator.domainPackage=com.tony.entitygenerator.mapperPackage=com.tony.mappergenerator.daoPackage=com.tony.dao

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd" ><generatorConfiguration> <!-- 引入配置文件 --> <properties resource="mybatis-generator.properties" /> <!-- 指定数据连接驱动jar地址 --> <classPathEntry location="${generator.classPath}" /> <!-- 一个数据库一个context --> <context targetRuntime="Mybatis3"> <!-- defaultModelType="hierarchical" --> <property name="javaFileEncoding" value="UTF-8" /> <property name="suppressTypeWarnings" value="true" /> <plugin type="org.mybatis.generator.plugins.SerializablePlugin" /> <plugin type="org.mybatis.generator.plugins.CaseInsensitiveLikePlugin" /> <plugin type="org.mybatis.generator.plugins.RowBoundsPlugin" /> <plugin type="org.mybatis.generator.plugins.ToStringPlugin" /> <plugin type="org.mybatis.generator.plugins.CachePlugin" /> <plugin type="org.mybatis.generator.plugins.MapperConfigPlugin"> <property name="fileName" value="${generator.mapperConfigFilename}" /> <property name="targetPackage" value="${generator.mapperPackage}" /> <property name="targetProject" value="${generator.targetProject}/src/main/java" /> </plugin> <plugin type="org.mybatis.generator.plugins.RenameExampleClassPlugin"> <property name="searchString" value="Example$" /> <property name="replaceString" value="Criteria" /> </plugin> <!-- 注释 --> <commentGenerator> <property name="suppressAllComments" value="true" /><!-- 是否取消注释 --> <property name="suppressDate" value="true" /> <!-- 是否生成注释代时间戳 --> </commentGenerator> <!-- jdbc连接 --> <jdbcConnection driverClass="${jdbc.driverClassName}" connectionURL="${jdbc.url}" userId="${jdbc.username}" password="${jdbc.password}" /> <!-- 类型转换 --> <javaTypeResolver> <!-- 是否使用bigDecimal, false可自动转化以下类型(Long, Integer, Short, etc.) --> <property name="forceBigDecimals" value="false" /> </javaTypeResolver> <!-- 生成实体类地址 --> <javaModelGenerator targetPackage="${generator.domainPackage}" targetProject="${generator.targetProject}/src/main/java"> <!-- 是否在当前路径下新加一层schema,eg:fase路径com.oop.eksp.user.model, true:com.oop.eksp.user.model.[schemaName] --> <property name="enableSubPackages" value="true" /> <!-- 是否针对string类型的字段在set的时候进行trim调用 --> <property name="trimStrings" value="true" /> </javaModelGenerator> <!-- 生成mapxml文件 --> <sqlMapGenerator targetPackage="${generator.mapperPackage}" targetProject="${generator.targetProject}/src/main/java"> <!-- 是否在当前路径下新加一层schema,eg:fase路径com.oop.eksp.user.model, true:com.oop.eksp.user.model.[schemaName] --> <property name="enableSubPackages" value="true" /> </sqlMapGenerator> <!-- 生成mapxml对应client,也就是接口dao --> <javaClientGenerator targetPackage="${generator.daoPackage}" targetProject="${generator.targetProject}/src/main/java" type="XMLMAPPER"> <!-- 是否在当前路径下新加一层schema,eg:fase路径com.oop.eksp.user.model, true:com.oop.eksp.user.model.[schemaName] --> <property name="enableSubPackages" value="true" /> </javaClientGenerator> <!-- 配置表信息 --> <table tableName="t_user" domainObjectName="User" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table> </context></generatorConfiguration> 
  • unchecked exception:对应系统中的严重十分景况,那个景况应用程序日常不恐怕苏醒,比如数据库挂掉、互联网连接中断、服务器崩溃等。所以,unchecked exception相当所提供的消息平日不是为应用程序策画的,而是为系统一保险养人士希图的。
  • checked exception:经常用于表明系统中的某个罕见的不法则景况。对于一个事情方法来讲,使用错误码(Error Code)的一世是通过再次回到-1等等的数字表惠氏些狼狈境况,并要求调用方对这一个非平日意况实行拍卖,而编写翻译器对checked exception的检查能够特别提升这种公约关系;日常checked exception是可过来的,也是情理之中的,它提供的音信是面向应用程序的。
  • 纯Servlet开垦,这种形式极度tomcat+gson,能够飞快搭建出服务器端的景况,输出 JSON 数据
  • Spring MVC,这种措施十二分mybatis是近年来中山大学型项目服务器端开拓技艺的首要推荐,对于个体支出来说,配置情形有一点点复杂
  • Spring Boot,这种营造于Spring之上的长足支付框架,很轻便上手而且轻巧、高效,对于自个儿这种人来说正好方便,哈哈,明日花了好几年华跑了眨眼之间间,把经验记录一下,那也是笔者在简书的首先篇日记,写得不佳,不要见怪~~废话不说,入主旨

本文完整示例Chapter4-2-2,能够经过运营单元测验来考核对差别内容的归类记录情形。

  • 通常将java.lang.Errorjava.lang.RuntimeException随同子类称之为unchecked exceptionboot中动用log4j记录日志皇家娱乐平台:,AOP的超级推行。。之所以这样称呼,是因为编写翻译器不会对这几个品种的可怜进行编写翻译期检查。因为日常关怀不到java.lang.Error,狭义上的话,将java.lang.RuntimeException临时称为unchecked exception也可以;
  • java.lang.Exception会同子类,并除去java.lang.RuntimeException分支,统称为checked exception。一旦在措施具名中扬言了将会抛出“checked exception”,调用者就亟须对这个十分实行拍卖。
  • 搭建Maven的条件,不然开荒太不方便人民群众了,下载Maven,设置意况变量,配置settings.xml,设置本地仓库,这里就不再赘述了,互联网一搜一大堆

  • 安装STS的 Maven(Window-Preferences-Maven-User Settings),设置User Settings为地点的settings.xml

  • 开创一个基于maven 的类别,pom文件中参加 Spring Boot 须求的库

在开创Spring Boot工程时,大家引进了spring-boot-starter,个中蕴涵了spring-boot-starter-logging,该信任内容就是Spring Boot暗中认可的日记框架Logback,所以我们在引进log4j在此以前,要求先祛除该包的依附,再引进log4j的依赖,就疑似上面那样:

本文由手机赌钱游戏大全发布于手机赌钱游戏大全,转载请注明出处:boot中动用log4j记录日志皇家娱乐平台:,AOP的超

关键词: