茂名网站制作推广,评级网站怎么做,网站建设公司用5g,韶关建设网站目录
1 .ioc容器#xff08;控制反转#xff09;
2. Aop面向切面编程
3. 事务申明
4. 注解的方式启动 5. spring是什么与他的优势
6. 代理设计模式#xff08;比如aop#xff09;
7. springmvc中相应json数据
8. 使用lombok来进行对代码的简化
9. 使用logback记录…目录
1 .ioc容器控制反转
2. Aop面向切面编程
3. 事务申明
4. 注解的方式启动 5. spring是什么与他的优势
6. 代理设计模式比如aop
7. springmvc中相应json数据
8. 使用lombok来进行对代码的简化
9. 使用logback记录日志
10. 使用log4j记录日志 1 .ioc容器控制反转 在没有学习spring之前呢我们都是以new的方式来创建对象那么这样就会显得代码冗余是因为没有统一的进行管理底层是使用反射工程模式解析xml实现的最常见的方式i就是依赖注入 注ioc容器可以对每个对象创建的过程进行一个统一管理 2. Aop面向切面编程 主要是在我们的方法前后呢实现一个对方法的增强比如对事务log的打印可以减少代码一些冗余性的问题管理 注 连接点 该类中那些方法需要被增强这些方法就是可以作为连接点 通知在方法前后执行代码前置通知 也就是说在我们调用adddel。。。这些方法之前就会输出日志之前 后置通知 也就是说在我们调用adddel。。。这些方法之后就会输出日志之后 环绕通知 相当于前后 异常通知如果在调用方法之后抛出了异常那么就可以出发异常通知 注意不能用try去捕获异常否则不会看到异常 最终通知 切点切入点需要描述该类中那些方法是需要实际被增强的方法不是所有的方法都被增强 切面也就是说通知应用到的过程这个注解也就是将这个这个方法以小写开头的方式自动注册到我们的ioc容器中 3. 事务申明 在方法上面加上一个事务注解进行了可以减少代码的冗余
4. 注解的方式启动 注解
1. RestController让我们的接口返回json格式 5. spring是什么与他的优势 概念spring是一个JavaEE开源的轻量级的框架可以解决我们企业开发中遇到的难题能够让代码编写变得更加简单核心组件ioc和aop
优势1.方法的解耦简化开发比如因为new一个对象而导致代码冗余 2.aop技术的支持 3.提供事务申明支持 4.junit单元测试 5.方便整合其他框架mybatisspringmvc、bootcloudredis 6.可以降低我们的javaEEapi的开发使用难度因为他对很多的复杂api接口实现的封装
6. 代理设计模式比如aop 动态代理jdk动态代理cglib动态代理
静态代理
7. springmvc中相应json数据 在接口上加上ResponseBody 根据该方法的返回值来返回对应的json数据底层是根据返回值序列化成json数据
8. 使用lombok来进行对代码的简化 注在之前呢我们需要手动的一个一个去设置getter和setter那么就会很麻烦代码冗余 使用lombok在类上面加上Data注释即可 9. 使用logback记录日志 依赖导入 配置和建一个log包configuration!--本文主要输出日志为控制台日志系统日志sql日志异常日志--!-- %m输出的信息,%p日志级别,%t线程名,%d日期,%c类的全名,,,, --!--控制台--appender nameconsole classch.qos.logback.core.ConsoleAppenderencoderpattern%d %p (%file:%line\)- %m%n/patterncharsetUTF-8/charset/encoder/appender!--系统info级别日志--!--File 日志目录没有会自动创建--!--rollingPolicy日志策略每天简历一个日志文件或者当天日志文件超过64MB时--!--encoder 日志编码及输出格式--appender namefileLogclassch.qos.logback.core.rolling.RollingFileAppenderFilelog/file/fileLog.log/FilerollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicyfileNamePatternlog/file/fileLog.log.%d.%i/fileNamePatterntimeBasedFileNamingAndTriggeringPolicy classch.qos.logback.core.rolling.SizeAndTimeBasedFNATP!-- or whenever the file size reaches 64 MB --maxFileSize64 MB/maxFileSize/timeBasedFileNamingAndTriggeringPolicy/rollingPolicyencoderpattern%d %p (%file:%line\)- %m%n/patterncharsetUTF-8/charset!-- 此处设置字符集 --/encoder/appender!--sql日志--appender namesqlFileclassch.qos.logback.core.rolling.RollingFileAppenderFilelog/sql/sqlFile.log/FilerollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicyfileNamePatternlog/sql/sqlFile.log.%d.%i/fileNamePatterntimeBasedFileNamingAndTriggeringPolicy classch.qos.logback.core.rolling.SizeAndTimeBasedFNATP!-- or whenever the file size reaches 64 MB --maxFileSize64 MB/maxFileSize/timeBasedFileNamingAndTriggeringPolicy/rollingPolicy!--对记录事件进行格式化。负责两件事一是把日志信息转换成字节数组二是把字节数组写入到输出流。--encoder!--用来设置日志的输入格式--pattern%d %p (%file:%line\)- %m%n/patterncharsetUTF-8/charset!-- 此处设置字符集 --/encoder/appender!--异常日志--appender nameerrorFileclassch.qos.logback.core.rolling.RollingFileAppenderFilelog/error/errorFile.log/FilerollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicyfileNamePatternlog/error/errorFile.%d.log.%i/fileNamePatterntimeBasedFileNamingAndTriggeringPolicy classch.qos.logback.core.rolling.SizeAndTimeBasedFNATP!-- or whenever the file size reaches 64 MB --maxFileSize64 MB/maxFileSize/timeBasedFileNamingAndTriggeringPolicy/rollingPolicy!--对记录事件进行格式化。负责两件事一是把日志信息转换成字节数组二是把字节数组写入到输出流。--encoder!--用来设置日志的输入格式--pattern%d %p (%file:%line\)- %m%n/patterncharsetUTF-8/charset!-- 此处设置字符集 --/encoder!--日志都在这里 过滤出 error使用 try {}catch (Exception e){} 的话异常无法写入日志可以在catch里用logger.error()方法手动写入日志--filter classch.qos.logback.classic.filter.LevelFilterlevelERROR/levelonMatchACCEPT/onMatchonMismatchDENY/onMismatch/filter/appender!-- 日志输出级别 --!--All\DEBUG\INFO\WARN\ERROR\FATAL\OFF--!--打印info级别日志分别在控制台fileLogerrorFile输出异常日志在上面由过滤器过滤出ERROR日志打印--root levelINFOappender-ref reffileLog /appender-ref refconsole /appender-ref referrorFile //root!--打印sql至sqlFile文件日志--logger namecom.dolphin.mapper levelDEBUG additivityfalseappender-ref refconsole /appender-ref refsqlFile //logger
/configurationapplication
###指定读取logback配置文件
logging:config: classpath:log/logback.xml测试案例
RestController
Slf4j
public class MyIndexService {RequestMapping(/getName)
public String getName(String name, int age) {log.info(name:{},age:{}, name, age);return name;
}} 注使用slf4j可以自动加上划红线的代码可以减少一行代码 10. 使用log4j记录日志 导入依赖新建log4j配置文件文件名称log4j.properties#log4j.rootLoggerCONSOLE,info,error,DEBUG
log4j.rootLoggerDEBUG,error,CONSOLE,info
log4j.appender.CONSOLEorg.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layoutorg.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n log4j.logger.infoinfo
log4j.appender.infoorg.apache.log4j.DailyRollingFileAppender
log4j.appender.info.layoutorg.apache.log4j.PatternLayout
log4j.appender.info.layout.ConversionPattern%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n
log4j.appender.info.datePattern.yyyy-MM-dd
log4j.appender.info.Threshold info
log4j.appender.info.appendtrue
log4j.appender.info.FileE:/code/log/info.loglog4j.logger.errorerror
log4j.appender.errororg.apache.log4j.DailyRollingFileAppender
log4j.appender.error.layoutorg.apache.log4j.PatternLayout
log4j.appender.error.layout.ConversionPattern%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n
log4j.appender.error.datePattern.yyyy-MM-dd
log4j.appender.error.Threshold error
log4j.appender.error.appendtrue
log4j.appender.error.FileE:/code/log/error.loglog4j.logger.DEBUGDEBUG
log4j.appender.DEBUGorg.apache.log4j.DailyRollingFileAppender
log4j.appender.DEBUG.layoutorg.apache.log4j.PatternLayout
log4j.appender.DEBUG.layout.ConversionPattern%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n
log4j.appender.DEBUG.datePattern.yyyy-MM-dd
log4j.appender.DEBUG.Threshold DEBUG
log4j.appender.DEBUG.appendtrue
log4j.appender.DEBUG.FileE:/code/log/dubug.loglog4j代码
private static final Logger logger LoggerFactory.getLogger(IndexController.class);