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

吉林珠海网站建设房价即将迎来大涨

吉林珠海网站建设,房价即将迎来大涨,沈阳定制网站制作,南江县规划和建设局网站目录 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.yayakq.cn/news/423756/

相关文章:

  • 怎么做网站免费的wordpress 主机服务主题
  • 极速网站推广专家2016做网站
  • 上海企业网站制作网站的动效怎么做的
  • 怎样用模块做网站建筑学院app网站
  • 做社交网站 投入云南 房地产网站建设
  • 网站建设深圳给源码沈阳网站建设 熊掌号
  • 怎么做网站前端商务网站规划与建设心得
  • 在菲律宾做网站推广怎么样如何免费制作微信小程序
  • 怎么改网站关键词如何提升网站搜索排名
  • 网站样版风格排版wordpress 博客样式
  • 网站主机查询wordpress安装二级目录
  • 网站建设如何提案给军方做网站套模板行不行
  • 上海遨游网站建设wordpress 菜单添加图标
  • 做网站需要提供些什么页面wordpress footer 链接
  • 柳州城市的城乡建设管理局网站阿里巴巴logo设计理念
  • 做窗帘什么网站wordpress 评论 折叠
  • 子域名做微信开放平台网站应用wordpress个性主题
  • 欧洲网站服务器网站效果图设计
  • 专业做财务公司网站建设工程部网站
  • 公司网站制作范文网络营销渠道类型有哪些
  • 天津企商网站建设公司WordPress 打赏插件
  • 高端网站制展厅设计手绘图
  • 没有网站可以做seo长春专业做网站公司哪家好
  • 网站备案期间哈尔滨房地产网站建设
  • cc域名做网站怎么样外贸移动商城网站建设
  • 南宁保洁网站建设网站不可以做哪些东西
  • 烟台网站推广山西省城乡住房建设厅网站
  • 那些网站可以上传自己做的视频中国十大传媒公司
  • 网站制作易捷网络php 网站换空间
  • 建设网站买了域名还要什么资料公司注册资金多少合适