1,junit测试
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
2,JunitTest类
@SpringBootTest(classes=PageHomeController .class)
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
public class JunitTest {
@Autowired
private PageHomeController test;
@Test
public void testJunit() {
String s = test.junitTest("哩哩啦啦");
System.out.println(s);
}
}
@Controller
public class PageHomeController {
public String junitTest(String values) {
return values;
}
}
3,启动类
//@EnableAutoConfiguration
//@ComponentScan("com.yu.controller")
//默认情况扫描当前包以及当前包子包
//@SpringBootApplication(scanBasePackages= {"com.yu.controller"})
@SpringBootApplication//组合注解
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
4,支持Rest风格
@RequestMapping("/req/{msg}")
@ResponseBody
public String testRestful(@PathVariable String msg) {
return "hello:"+msg;
}
如果一个类中返回的都是restful内容可以用@RestController代替@Controller,不用再写@Responsebody
5,默认日志
SpringBoot使用的默认日志框架是Logback,并用INFO级别输出到控制台
7个日志级别从低到高:
TRACE<DEBUG<INFO<WARN<ERROR<FATAL<OFF
设置为WARN,低于WARN的信息不会输出
例子:
logging.level.root=warn(root日志的级别为warn)
logging.level.org.hibernate=ERROR
默认情况下,SpringBoot将日志输出到控制台,不会写到日志文件。如果要编写到控制台以外的日志文件,则需要在application.properties中设置logging.file 或logging.path属性。默认情况下,日志大小达到10MB时会切分一次,产生新的日志文件,默认级别:ERROR、WARN、INFO
logging.level.root=INFO
logging.level.org.org.springframework.web=debug
logging.file=e:\\springboot\\info.log
logging.pattern.console=%d{yyyy/MM/dd-HH:mm:ss} [%thread] %-5level %logger- %msg%n
logging.pattern.file=%d{yyyy/MM/dd-HH:mm} [%thread] %-5level %logger- %msg%n
6,log4j使用
pom
<!-- 排除Logback -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 添加log4j依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j</artifactId>
<version>1.3.8.RELEASE</version>
</dependency>
log4j.properties
#OFF,systemOut,logFile,logDailyFile,logRollingFile,logMail,logDB,ALL
log4j.rootLogger=INFO,systemOut,logFile,logDailyFile,logRollingFile,logMail,logDB
#输出到控制台
log4j.appender.systemOut= org.apache.log4j.ConsoleAppender
log4j.appender.systemOut.layout= org.apache.log4j.PatternLayout
log4j.appender.systemOut.layout.ConversionPattern= [%-5p][%-22d{yyyy/MM/dd HH:mm:ssS}][%l]%n%m%n
log4j.appender.systemOut.Threshold= DEBUG
log4j.appender.systemOut.ImmediateFlush= TRUE
log4j.appender.systemOut.Target= System.out
#输出到文件
log4j.appender.logFile= org.apache.log4j.FileAppender
log4j.appender.logFile.layout= org.apache.log4j.PatternLayout
log4j.appender.logFile.layout.ConversionPattern= [%-5p][%-22d{yyyy/MM/dd HH:mm:ssS}][%l]%n%m%n
log4j.appender.logFile.Threshold= DEBUG
log4j.appender.logFile.ImmediateFlush= TRUE
log4j.appender.logFile.Append= TRUE
log4j.appender.logFile.File= E://eclipse/log/log-info.log
log4j.appender.logFile.Encoding= UTF-8
#按DatePattern输出到文件
log4j.appender.logDailyFile= org.apache.log4j.DailyRollingFileAppender
log4j.appender.logDailyFile.layout= org.apache.log4j.PatternLayout
log4j.appender.logDailyFile.layout.ConversionPattern= [%-5p][%-22d{yyyy/MM/dd HH:mm:ssS}][%l]%n%m%n
log4j.appender.logDailyFile.Threshold= INFO
log4j.appender.logDailyFile.ImmediateFlush= TRUE
log4j.appender.logDailyFile.Append= TRUE
log4j.appender.logDailyFile.File= E://eclipse/log/log-info.log
log4j.appender.logDailyFile.DatePattern= '.'yyyy-MM-dd-HH-mm'.log'
log4j.appender.logDailyFile.Encoding= UTF-8
#设定文件大小输出到文件
log4j.appender.logRollingFile= org.apache.log4j.RollingFileAppender
log4j.appender.logRollingFile.layout= org.apache.log4j.PatternLayout
log4j.appender.logRollingFile.layout.ConversionPattern= [%-5p][%-22d{yyyy/MM/dd HH:mm:ssS}][%l]%n%m%n
log4j.appender.logRollingFile.Threshold= DEBUG
log4j.appender.logRollingFile.ImmediateFlush= TRUE
log4j.appender.logRollingFile.Append= TRUE
log4j.appender.logRollingFile.File= E://eclipse/log/log-info.log
log4j.appender.logRollingFile.MaxFileSize= 10kb
log4j.appender.logRollingFile.MaxBackupIndex= 10
log4j.appender.logRollingFile.Encoding= UTF-8
#用Email发送日志
#log4j.appender.logMail= org.apache.log4j.net.SMTPAppender
#log4j.appender.logMail.layout= org.apache.log4j.HTMLLayout
#log4j.appender.logMail.layout.LocationInfo= TRUE
#log4j.appender.logMail.layout.Title= Struts2 Mail LogFile
#log4j.appender.logMail.Threshold= DEBUG
#log4j.appender.logMail.SMTPDebug= FALSE
#log4j.appender.logMail.SMTPHost= SMTP.163.com
#log4j.appender.logMail.From= xly3000@163.com
#log4j.appender.logMail.To= xly3000@gmail.com
#log4j.appender.logMail.Cc= xly3000@gmail.com
#log4j.appender.logMail.Bcc= xly3000@gmail.com
#log4j.appender.logMail.SMTPUsername= xly3000
#log4j.appender.logMail.SMTPPassword= 1234567
#log4j.appender.logMail.Subject= Log4j Log Messages
#log4j.appender.logMail.BufferSize= 1024
#log4j.appender.logMail.SMTPAuth= TRUE
#将日志登录到MySQL数据库
#log4j.appender.logDB= org.apache.log4j.jdbc.JDBCAppender
#log4j.appender.logDB.layout= org.apache.log4j.PatternLayout
#log4j.appender.logDB.Driver= com.mysql.jdbc.Driver
#log4j.appender.logDB.URL= jdbc:mysql://127.0.0.1:3306/xly
#log4j.appender.logDB.User= root
#log4j.appender.logDB.Password= 123456
#log4j.appender.logDB.Sql= INSERT INTOT_log4j(project_name,create_date,level,category,file_name,thread_name,line,all_category,message)values('Struts2','%d{yyyy-MM-ddHH:mm:ss}','%p','%c','%F','%t','%L','%l','%m')