当前位置: 首页 > news >正文

公司网站设计是不是一次性收费的win10优化

公司网站设计是不是一次性收费的,win10优化,江门网站建设公司哪家好,小程序推广有哪些好的方法目录 1 .ioc容器(控制反转) 2. Aop面向切面编程 3. 事务申明 4. 注解的方式启动 5. spring是什么与他的优势 6. 代理设计模式(比如aop) 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的打印,可以减少代码一些冗余性的问题管理

注:

  • 连接点:

        该类中那些方法需要被增强,这些方法就是可以作为连接点

  • 通知:在方法前后执行代码

前置通知

也就是说,在我们调用add,del。。。这些方法之前就会输出日志(之前)

后置通知

也就是说,在我们调用add,del。。。这些方法之后就会输出日志(之后)

环绕通知

相当于,前+后

异常通知:如果在调用方法之后抛出了异常,那么就可以出发异常通知

(注意:不能用try去捕获异常,否则不会看到异常) 

最终通知

  • 切点(切入点):需要描述,该类中那些方法是需要实际被增强的方法,不是所有的方法都被增强

  • 切面:也就是说,通知应用到的过程

 这个注解也就是将这个这个方法以小写开头的方式自动注册到我们的ioc容器中

3. 事务申明


在方法上面加上一个事务注解进行了,可以减少代码的冗余

4. 注解的方式启动


注解:

1. RestController:让我们的接口返回json格式

5. spring是什么与他的优势


概念:spring是一个JavaEE开源的轻量级的框架,可以解决我们企业开发中遇到的难题,能够让代码编写变得更加简单,核心组件ioc和aop

优势:1.方法的解耦,简化开发,比如因为new一个对象而导致代码冗余

           2.aop技术的支持

           3.提供事务申明支持

           4.junit单元测试

           5.方便整合其他框架(mybatis,springmvc、boot,cloud,redis)

           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 name="console" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>%d %p (%file:%line\)- %m%n</pattern><charset>UTF-8</charset></encoder></appender><!--系统info级别日志--><!--<File> 日志目录,没有会自动创建--><!--<rollingPolicy>日志策略,每天简历一个日志文件,或者当天日志文件超过64MB时--><!--encoder 日志编码及输出格式--><appender name="fileLog"class="ch.qos.logback.core.rolling.RollingFileAppender"><File>log/file/fileLog.log</File><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>log/file/fileLog.log.%d.%i</fileNamePattern><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><!-- or whenever the file size reaches 64 MB --><maxFileSize>64 MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy><encoder><pattern>%d %p (%file:%line\)- %m%n</pattern><charset>UTF-8</charset><!-- 此处设置字符集 --></encoder></appender><!--sql日志--><appender name="sqlFile"class="ch.qos.logback.core.rolling.RollingFileAppender"><File>log/sql/sqlFile.log</File><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>log/sql/sqlFile.log.%d.%i</fileNamePattern><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><!-- or whenever the file size reaches 64 MB --><maxFileSize>64 MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy><!--对记录事件进行格式化。负责两件事,一是把日志信息转换成字节数组,二是把字节数组写入到输出流。--><encoder><!--用来设置日志的输入格式--><pattern>%d %p (%file:%line\)- %m%n</pattern><charset>UTF-8</charset><!-- 此处设置字符集 --></encoder></appender><!--异常日志--><appender name="errorFile"class="ch.qos.logback.core.rolling.RollingFileAppender"><File>log/error/errorFile.log</File><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>log/error/errorFile.%d.log.%i</fileNamePattern><timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"><!-- or whenever the file size reaches 64 MB --><maxFileSize>64 MB</maxFileSize></timeBasedFileNamingAndTriggeringPolicy></rollingPolicy><!--对记录事件进行格式化。负责两件事,一是把日志信息转换成字节数组,二是把字节数组写入到输出流。--><encoder><!--用来设置日志的输入格式--><pattern>%d %p (%file:%line\)- %m%n</pattern><charset>UTF-8</charset><!-- 此处设置字符集 --></encoder><!--日志都在这里 过滤出 error使用 try {}catch (Exception e){} 的话异常无法写入日志,可以在catch里用logger.error()方法手动写入日志--><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>ERROR</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter></appender><!--  日志输出级别 --><!--All\DEBUG\INFO\WARN\ERROR\FATAL\OFF--><!--打印info级别日志,分别在控制台,fileLog,errorFile输出异常日志在上面由过滤器过滤出ERROR日志打印--><root level="INFO"><appender-ref ref="fileLog" /><appender-ref ref="console" /><appender-ref ref="errorFile" /></root><!--打印sql至sqlFile文件日志--><logger name="com.dolphin.mapper" level="DEBUG" additivity="false"><appender-ref ref="console" /><appender-ref ref="sqlFile" /></logger>
</configuration>

application
###指定读取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.rootLogger=CONSOLE,info,error,DEBUG
log4j.rootLogger=DEBUG,error,CONSOLE,info
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender     
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout     
log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd-HH-mm} [%t] [%c] [%p] - %m%n    log4j.logger.info=info
log4j.appender.info=org.apache.log4j.DailyRollingFileAppender
log4j.appender.info.layout=org.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.append=true
log4j.appender.info.File=E:/code/log/info.loglog4j.logger.error=error  
log4j.appender.error=org.apache.log4j.DailyRollingFileAppender
log4j.appender.error.layout=org.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.append=true
log4j.appender.error.File=E:/code/log/error.loglog4j.logger.DEBUG=DEBUG
log4j.appender.DEBUG=org.apache.log4j.DailyRollingFileAppender
log4j.appender.DEBUG.layout=org.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.append=true
log4j.appender.DEBUG.File=E:/code/log/dubug.loglog4j代码
private static final Logger logger = LoggerFactory.getLogger(IndexController.class);

http://www.hkea.cn/news/299718/

相关文章:

  • 天河做网站开发免费留电话号码的广告
  • 成都市金堂县网站建设免费seo在线工具
  • 计算机培训中心网站高端网站建设的公司
  • 成都建设路小学网站大作设计网站
  • 桂林创新大厦网站今日十大热点新闻事件
  • 做网站空间哪家好windows7系统优化工具
  • 网站建设首选公司seo推广一个月见效
  • 微信做模板下载网站有哪些推广网站要注意什么
  • 做网站 java c常德seo快速排名
  • 仙桃做网站找谁常用的网络推广方法
  • 品牌推广网站怎样做百度手机助手苹果版
  • 武汉工业网站制作百度人工服务热线24小时
  • 新闻头条最新消息今日头条站长之家seo综合
  • app与网站宁波seo网络推广渠道介绍
  • 国外学做咖啡的网站百度高级搜索网址
  • 建网站开源代码游戏推广怎么找玩家
  • 莱州哪里有做网站的浙江网站建设平台
  • ps网站设计与制作免费推广seo
  • 网站查询功能怎么做关键词搜索量怎么查
  • 付费网站推广网站优化包括哪些内容
  • 在日本做色情网站广州seo外包
  • 最棒的网站建设考研最靠谱的培训机构
  • 广州建设企业网站黑河seo
  • 招商网站建设性价比高seo排名优化的
  • 产品网站怎么做的长沙正规关键词优化价格从优
  • 怎样查询江西省城乡建设厅网站杭州seo网
  • 网站建设空间是指什么软件网站优化最为重要的内容是
  • 做美工要开通什么网站的会员呢新网站友链
  • 网站集约化建设推进情况推广app赚钱
  • 番禺大石做网站域名污染查询网站