springboot最简单的搭建与分析
2020-04-07 13:45
113 查看
搭建springboot项目:
1.创建一个meavn(apache-maven-3.5.4)项目,将项目.settings路径下org.eclipse.wst.common.project.facet.core.xml文件修改为:
<?xml version="1.0" encoding="UTF-8"?> <faceted-project> <fixed facet="wst.jsdt.web"/> <installed facet="java" version="1.8"/> <installed facet="jst.web" version="3.0"/> <installed facet="wst.jsdt.web" version="1.0"/> </faceted-project>
2.修改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>Yu</groupId> <artifactId>springboot</artifactId> <packaging>war</packaging> <version>0.0.1-SNAPSHOT</version> <name>springboot Maven Webapp</name> <url>http://maven.apache.org</url> <!-- 引入并指定spring-boot父版本 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.2.RELEASE</version> <!-- lookup parent from repository --> <relativePath/> </parent> <dependencies> <!-- 上边引入 parent,因此 下边无需指定版本 --> <!-- 添加web项目依赖包含 mvc,aop 等jar资源 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> </dependencies> <build> <finalName>springboot</finalName> </build> </project>
3.启动入口类:
package com.springboot.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.ComponentScan; /** * 该注解指定项目为springboot,由此类当作程序入口 * 自动装配 web 依赖的环境 * @author 95214 * */ @SpringBootApplication @ComponentScan(basePackages = {"com.springboot.*"}) //不加这个找不到页面 public class SpringbootApplication { public static void main(String[] args) { SpringApplication.run(SpringbootApplication.class, args); } }
4.编写测试类:
package com.springboot.controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController //输出字符串json格式 public class TestController { @GetMapping("/test") public String index(){ System.out.println("进入测试页面~"); return "测试页面"; } }
5.进入浏览器输入url:http://127.0.0.1:8080/test 执行结果如下:
6.搭建过程中的问题:
- 找不到页面,解决方法:入口类添加注解@ComponentScan(basePackages = {“com.springboot.*”});
- src/main/java路径丢失,解决方法:bulid path中jre环境改成jdk环境;
- java.lang.NoClassDefFoundError: org/springframework/boot/SpringApplication;
可能错误原因:maven本地库路径有中文或乱码;
7.springboot分析:
搭建一个简单的springboot,只需要配置pom.xml中parent节点和web依赖;编写一个入口类,以及一个测试类,删除web.xml;
优点:无需复杂的配置,springboot都以进行默认配置;快速搭建一个web项目;
8.添加log4j2依赖:
<!-- log4j2日志依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> </dependency> <!-- log4j2日志显示具体异常位置 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency>
去掉springboot中自带的日志依赖
<!-- 添加web项目依赖包含 mvc,aop 等jar资源 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency>
添加log4j2配置文件:log4j2.xml
<?xml version="1.0" encoding="UTF-8"?> <!--设置log4j2的自身log级别为warn--> <!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL --> <!--Configuration后面的status,这个用于设置log4j2自身内部的信息输出,可以不设置, 当设置成trace时,你会看到log4j2内部各种详细输出--> <!--monitorInterval:Log4j能够自动检测修改配置 文件和重新配置本身,设置间隔秒数--> <configuration status="warn" monitorInterval="30"> <properties> <property name="LOG_HOME">F:/logs</property> <!--<property name="LOG_HOME">F:/logs</property>--> <property name="FILE_NAME">mylog</property> <property name="log.sql.level">info</property> </properties> <!--先定义所有的appender--> <appenders> <!--这个输出控制台的配置--> <console name="Console" target="SYSTEM_OUT"> <!--输出日志的格式--> <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/> </console> <!--文件会打印出所有信息,这个log每次运行程序会自动清空,由append属性决定,这个也挺有用的,适合临时测试用--> <File name="log" fileName="log/test.log" append="false"> <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/> </File> <!-- 这个会打印出所有的info及以下级别的信息,每次大小超过size, 则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档--> <RollingFile name="RollingFileInfo" fileName="${LOG_HOME}/info.log" filePattern="${LOG_HOME}/$${date:yyyy-MM}/info-%d{yyyy-MM-dd}-%i.log"> <Filters> <!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)--> <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/> <ThresholdFilter level="WARN" onMatch="DENY" onMismatch="NEUTRAL"/> </Filters> <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/> <Policies> <TimeBasedTriggeringPolicy interval="1" /> <SizeBasedTriggeringPolicy size="100 MB"/> </Policies> </RollingFile> <RollingFile name="RollingFileWarn" fileName="${LOG_HOME}/warn.log" filePattern="${LOG_HOME}/$${date:yyyy-MM}/warn-%d{yyyy-MM-dd}-%i.log"> <Filters> <ThresholdFilter level="WARN" onMatch="ACCEPT" onMismatch="DENY"/> <ThresholdFilter level="ERROR" onMatch="DENY" onMismatch="NEUTRAL"/> </Filters> <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/> <Policies> <TimeBasedTriggeringPolicy interval="1" /> <SizeBasedTriggeringPolicy size="100 MB"/> </Policies> <!-- DefaultRolloverStrategy属性如不设置,则默认为最多同一文件夹下7个文件,这里设置了20 --> <DefaultRolloverStrategy max="20"/> </RollingFile> <RollingFile name="RollingFileError" fileName="${LOG_HOME}/error.log" filePattern="${LOG_HOME}/$${date:yyyy-MM}/error-%d{yyyy-MM-dd}-%i.log"> <ThresholdFilter level="ERROR"/> <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/> <Policies> <TimeBasedTriggeringPolicy interval="1" /> <SizeBasedTriggeringPolicy size="100 MB"/> </Policies> </RollingFile> </appenders> <!--然后定义logger,只有定义了logger并引入的appender,appender才会生效--> <loggers> <!--过滤掉spring和hibernate的一些无用的debug信息--> <logger name="org.springframework" level="INFO"> </logger> <logger name="org.mybatis" level="INFO"> </logger> <root level="all"> <appender-ref ref="Console"/> <appender-ref ref="RollingFileInfo"/> <appender-ref ref="RollingFileWarn"/> <appender-ref ref="RollingFileError"/> </root> </loggers> </configuration>
添加springboot配置文件:application.properties
############################################################ # log4j2 ############################################################ logging.config=classpath:log4j2.xml
引用
private static Logger log = LoggerFactory.getLogger(Class.class);
相关文章推荐
- SpringBoot简单搭建SSM
- spring boot activiti工作流的搭建与简单使用
- spring-boot搭建简单web(整合freemarker)(二)
- 简单的利用IDEA搭建SpringBoot+Maven+Mybatis+自动生成代码
- 一起学习springboot[一,简单的springboot工程搭建]
- 1.2 使用IntelliJ IDEA搭建Spring-Boot与MongoDB数据的简单登录项目
- EST API的搭建可以这样简单,Spring Boot重拾后端之路
- 快速搭建一个简单的springboot项目
- Springboot +Redis简单搭建_06
- 简单搭建 Spring Boot Web项目(二)
- 基于maven的spring boot项目的简单搭建和部分雷区-新手向
- 在阿里云上搭建redis高可用集群,并写一个简单的springboot小demo测试
- 简单的搭建 spring boot 入门
- 使用IDEA搭建一个简单的SpringBoot项目——详细过程
- 利用SpringBoot简单快速搭建WEB项目入门
- 用Spring Boot搭建简单web项目
- (二)Eclipse+Maven+SpringBoot通过创建Maven项目添加依赖搭建SpringBoot项目,完成简单的增删改查操作。
- springboot (1) 快速搭建简单项目
- Spring boot 搭建一个简单的 Java EE 项目
- spring boot 简单搭建