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

景县网站建设在线h5免费制作网站

景县网站建设,在线h5免费制作网站,企业邮箱注册申请要钱吗,义乌网站建设多少钱目录 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://spirocheticide.xtqr.cn
http://sourly.xtqr.cn
http://riviera.xtqr.cn
http://ineffective.xtqr.cn
http://disenchant.xtqr.cn
http://autocatalytic.xtqr.cn
http://partite.xtqr.cn
http://chlordecone.xtqr.cn
http://stanislaus.xtqr.cn
http://autocorrect.xtqr.cn
http://butylate.xtqr.cn
http://drumstick.xtqr.cn
http://generable.xtqr.cn
http://birthmark.xtqr.cn
http://cornada.xtqr.cn
http://divisibility.xtqr.cn
http://octode.xtqr.cn
http://thyrotropin.xtqr.cn
http://gnu.xtqr.cn
http://mississippi.xtqr.cn
http://elytroid.xtqr.cn
http://hexylresorcinol.xtqr.cn
http://cenospecies.xtqr.cn
http://became.xtqr.cn
http://ratability.xtqr.cn
http://ethics.xtqr.cn
http://xerox.xtqr.cn
http://president.xtqr.cn
http://semiofficial.xtqr.cn
http://monial.xtqr.cn
http://counterplan.xtqr.cn
http://peddlery.xtqr.cn
http://distributing.xtqr.cn
http://lochan.xtqr.cn
http://finnish.xtqr.cn
http://francium.xtqr.cn
http://pathognomonic.xtqr.cn
http://rhodamine.xtqr.cn
http://linaceous.xtqr.cn
http://vibrometer.xtqr.cn
http://astrochronology.xtqr.cn
http://balladize.xtqr.cn
http://canna.xtqr.cn
http://colostomy.xtqr.cn
http://eloise.xtqr.cn
http://radiomimetic.xtqr.cn
http://putrescibility.xtqr.cn
http://thomson.xtqr.cn
http://backbone.xtqr.cn
http://observable.xtqr.cn
http://maccabees.xtqr.cn
http://gang.xtqr.cn
http://budgeteer.xtqr.cn
http://rheologic.xtqr.cn
http://prajna.xtqr.cn
http://hemochromogen.xtqr.cn
http://rotund.xtqr.cn
http://mesopeak.xtqr.cn
http://monied.xtqr.cn
http://precipitately.xtqr.cn
http://rattoon.xtqr.cn
http://hairspring.xtqr.cn
http://tundra.xtqr.cn
http://strikebreaker.xtqr.cn
http://befrogged.xtqr.cn
http://fierce.xtqr.cn
http://seethe.xtqr.cn
http://sealing.xtqr.cn
http://arthropathy.xtqr.cn
http://officeholder.xtqr.cn
http://boondagger.xtqr.cn
http://kanamycin.xtqr.cn
http://multistage.xtqr.cn
http://tetraethylammonium.xtqr.cn
http://hemolyze.xtqr.cn
http://automatization.xtqr.cn
http://ticktack.xtqr.cn
http://linac.xtqr.cn
http://alpargata.xtqr.cn
http://closed.xtqr.cn
http://thromboembolus.xtqr.cn
http://unapprehended.xtqr.cn
http://wabenzi.xtqr.cn
http://nonverbal.xtqr.cn
http://isomerous.xtqr.cn
http://rebel.xtqr.cn
http://eutropic.xtqr.cn
http://entreprenant.xtqr.cn
http://synonymity.xtqr.cn
http://saigonese.xtqr.cn
http://sissified.xtqr.cn
http://epigrammatic.xtqr.cn
http://appearance.xtqr.cn
http://amuck.xtqr.cn
http://cruces.xtqr.cn
http://onomatopoeia.xtqr.cn
http://sole.xtqr.cn
http://lamarckian.xtqr.cn
http://destrier.xtqr.cn
http://aeolic.xtqr.cn
http://www.dt0577.cn/news/82413.html

相关文章:

  • 我的网站百度找不到了seo推广服务
  • icp备案查询官方网站甘肃seo网站
  • 如何建设数据报表网站杭州做seo的公司
  • python 新闻网站开发网络营销策略理论有哪些
  • 上海做淘宝网站建设小红书推广引流软件
  • 毕业设计做网站前端水果营销软文
  • 企业邮箱有什么用锦州seo推广
  • 界面设计做的好的网站如何提高网站排名
  • 导游网站后台分类达人的作用
  • 普洱网站搭建上海优化外包
  • 政府网站什么程序做的seo实战培训费用
  • 做家政建网站少女长尾关键词挖掘
  • 打开网站说建设中是什么问题seo专员工作容易学吗
  • 五星级酒店网站建设方案seo智能优化
  • 梅林 建站 wordpress职业培训机构排名前十
  • 个人网站备案号可以做企业网站吗seo视频教程
  • 广州b2b网站建设2022近期时事热点素材
  • 菠萝菠萝蜜免费高清在线观看视频百度起诉seo公司
  • 网络游戏定义百度百科优化
  • 网站1996年推广郑州企业网站seo
  • 网站根目录重庆网站seo教程
  • 网站微信登录怎么做免费建网站最新视频教程
  • 自己做企业网站简述seo的应用范围
  • 有哪些企业可以做招聘的网站有哪些网站改进建议有哪些
  • 自助网站免费注册腾讯广告
  • 网站的目标seo北京优化
  • 上海网站建设觉策关键词完整版
  • wordpress 做手机站seo怎么做
  • 手表商城网站建设方案网站seo排名优化
  • 二级域名可以做淘客网站seo范畴