建企业网站需要哪些资料网站建设与企业管理心得体会

张小明 2026/1/10 16:34:32
建企业网站需要哪些资料,网站建设与企业管理心得体会,国内永久免费crm系统在线,怎么做网站动态框目录 1.SpringAOP概述 1.1SpringAOP的概念 1.2 AOP的优势 2.Spring的AOP技术-配置文件方式 2.1 AOP相关的术语 2.2 AOP配置文件方式的入门 1.导入依赖 2.业务层模拟保存账户 3.配置切面类 4.配置文件配置 5.编写测试代码 2.3 切入点的表达式 2.4 AOP的通知类型 1.…目录1.SpringAOP概述1.1SpringAOP的概念1.2 AOP的优势2.Spring的AOP技术-配置文件方式2.1 AOP相关的术语2.2 AOP配置文件方式的入门1.导入依赖2.业务层模拟保存账户3.配置切面类4.配置文件配置5.编写测试代码2.3 切入点的表达式2.4 AOP的通知类型1.前置通知2.最终通知3.后置通知4.异常通知5.环绕通知1.SpringAOP概述1.1SpringAOP的概念什么是AOP的技术在软件业AOP为AspectOrientedProgramming的缩写意为面向切面编程AOP是一种编程范式隶属于软工范畴指导开发者如何组织程序结构AOP最早由AOP联盟的组织提出的,制定了一套规范.Spring将AOP思想引入到框架中,必须遵守AOP联盟的规范SpringAOP是通过预编译方式或者运行期动态代理实现程序功能的统一维护的一种技术AOP是OOP的延续是软件开发中的一个热点也是Spring框架中的一个重要内容是函数式编程的一种衍生范型利用AOP可以对业务逻辑的各个部分进行隔离从而使得业务逻辑各部分之间的耦合度降低提高程序的可重用性同时提高了开发的效率AOP:面向切面编程.(思想.---解决OOP遇到一些问题)AOP 采取横向抽取机制取代了传统纵向继承体系重复性代码性能监视、事务管理、安全检查、缓存为什么要学习AOP可以在不修改源代码的前提下对程序进行增强1.2 AOP的优势JDK 的动态代理技术1、为接口创建代理类的字节码文件2、使用ClassLoader 将字节码文件加载到JVM3、创建代理类实例对象执行对象的目标方法 cglib 代理技术2.Spring的AOP技术-配置文件方式2.1 AOP相关的术语Joinpoint(连接点) 所谓连接点是指那些被拦截到的点。在spring中,这些点指的 是方法,因为spring只支持方法类型的连接点Pointcut(切入点)-- 所谓切入点是指我们要对哪些Joinpoint进行拦截的定义Advice(通知/增强)-- 所谓通知是指拦截到Joinpoint之后所要做的事情就是通知. 通知分为前置通知,后置通知,异常通知,最终通知,环绕通知(切面要完成的功能)Target(目标对象)-- 代理的目标对象Weaving(织入)-- 是指把增强应用到目标对象来创建新的代理对象的过程Proxy代理--一个类被AOP织入增强后就产生一个结果代理类Aspect(切面)--是切入点和通知的结合以后咱们自己来编写和配置的2.2 AOP配置文件方式的入门1.导入依赖dependencies dependency groupIdorg.springframework/groupId artifactIdspring-context/artifactId version5.0.2.RELEASE/version /dependency dependency groupIdcommons-logging/groupId artifactIdcommons-logging/artifactId version1.2/version /dependency dependency groupIdorg.springframework/groupId artifactIdspring-test/artifactId version5.0.2.RELEASE/version /dependency dependency groupIdjunit/groupId artifactIdjunit/artifactId version4.12/version scopetest/scope /dependency dependency groupIdaopalliance/groupId artifactIdaopalliance/artifactId version1.0/version /dependency dependency groupIdorg.springframework/groupId artifactIdspring-aspects/artifactId version5.0.2.RELEASE/version /dependency dependency groupIdorg.aspectj/groupId artifactIdaspectjweaver/artifactId version1.8.3/version /dependency /dependencies2.业务层模拟保存账户package com.qcby.service.impl; import com.qcby.service.UserService; public class UserServiceImpl implements UserService { Override public void save() { System.out.println(业务层:保存用户.......); } } package com.qcby.service; public interface UserService { void save(); }3.配置切面类package com.qcby.aspect; public class MyXmlAspect { /** * 通知 * 自定义切面类切入点(表达式)通知(增强的代码) */ public void log(){ //发送手机短信 //发送邮件/记录日志/事务管理 System.out.println(增强的代码执行了......); } }4.配置文件配置配置文件?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beans xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xmlns:contexthttp://www.springframework.org/schema/context xmlns:aophttp://www.springframework.org/schema/aop xsi:schemaLocation http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd /beans(1)配置bean对象把对象交给Spring管理bean iduserService classcom.qcby.service.impl.UserServiceImpl/ !--定义切面类-- bean idmyXmlAspect classcom.qcby.aspect.MyXmlAspect/(2)切面类的配置!--配置AOP的增强-- aop:config aop:aspect refmyXmlAspect !--前置通知:在UserServiceImpl的save方法执行之前会增强-- aop:before methodlog pointcutexecution(public void com.qcby.service.impl.UserServiceImpl.save())/ /aop:aspect /aop:config5.编写测试代码import com.qcby.service.UserService; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; RunWith(SpringJUnit4ClassRunner.class) ContextConfiguration(classpath:applicationContext.xml) public class Demo { Autowired private UserService userService; /** * 测试 */ Test public void run1(){ userService.save(); } }测试2.3 切入点的表达式在xml文件配置切入点的时候需要定义表达式表达式格式如下execution([权限修饰符] 返回值类型 包名.类名.方法名(参数))权限修饰符可以省略返回值类型不能省略要根据方法来编写返回值。可以用*代替包名就是要增强的方法所在的包位置拿com.qcby.service.impl.UserServiceImpl.save()举例com不能省略可以用*代替中间的包名可以用*省略也可以使用..类名也可以用*代替例如*ServiceImpl方法也可以用*代替参数如果是一个参数可以用*代替任意参数用..代替把配置文件中的表达式换成这样也可以aop:before methodlog pointcutexecution(void *.qcby..*Impl.save(..))/2.4 AOP的通知类型1.前置通知目标方法执行前进行增强。前置通知在入门中写过不再赘述2.最终通知目标方法执行成功或者失败进行增强。配置!--最终通知:不论UserServiceImpl的save方法执行成功或者失败都会增强-- aop:after methodlog pointcutexecution(public void com.qcby.service.impl.UserServiceImpl.save())/我们可以在save方法中模拟异常package com.qcby.service.impl; import com.qcby.service.UserService; public class UserServiceImpl implements UserService { Override public void save() { //模拟异常 int a1/0; System.out.println(业务层:保存用户.......); } }测试方法不变运行3.后置通知目标方法执行成功后进行增强。配置!--后置通知:在save方法执行成功之后增强-- aop:after-returning methodlog pointcutexecution(public void com.qcby.service.impl.UserServiceImpl.save())/测试增强方法的执行在后面4.异常通知目标方法执行失败后进行增强。!-- 异常通知 在遇到异常时进行增强-- aop:after-throwing methodlog pointcutexecution(public void com.qcby.service.impl.UserServiceImpl.save())/还是模拟异常把异常去掉5.环绕通知目标方法执行前后都可以进行增强。目标对象的方法需要手动执行。配置环绕通知方法1.必须接收一个 ProceedingJoinPoint 参数或 JoinPoint但通常用 ProceedingJoinPoint因为它可以控制目标方法的执行。2.必须调用 proceed() 方法来执行目标方法。3.通常返回一个 Object 类型如果目标方法有返回值的话需要返回它。/** * 环绕通知方法 */ public Object logAround(ProceedingJoinPoint joinPoint) throws Throwable { System.out.println(环绕通知目标方法执行前); // 执行目标方法 Object result joinPoint.proceed(); System.out.println(环绕通知目标方法执行后); return result; }配置!--环绕通知 在目标方法执行前后都可以进行增强。目标对象的方法需要手动执行。-- aop:around methodlogAround pointcutexecution(public void com.qcby.service.impl.UserServiceImpl.save())/执行
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

天津建设工程注册中心网站温州百度seo排名

信号上升/下降沿缓慢,通常表现为边沿斜率不足、波形“圆滑”,而不是理想的陡峭跳变。 这个问题在高速度数字系统中尤为关键,因为它会压缩有效数据窗口、增加时序不确定性、降低系统噪声容限。 以下是系统的原因分析和解决方案。一、核心原因分…

张小明 2026/1/1 10:48:54 网站建设

怎样免费做一个网站xampp wordpress主题

一、长期投资理念 1.1 长期持有的优势 优势: 充分利用复利 减少交易成本 避免情绪干扰 分享公司成长 1.2 复利的威力 原理: 利滚利 时间越长,威力越大 长期收益可观 案例: 10万元,年化12%,30年后174.5万 时间是最宝贵的资源 1.3 避免频繁交易 问题: 增加成本 情绪化…

张小明 2025/12/29 0:37:52 网站建设

2018淘宝客网站开发增加访客的网站

在深度学习模型训练中,你是否经常遇到这样的场景:昂贵的GPU显卡明明有强大的算力,却因为数据加载速度跟不上而频繁处于"等待"状态?数据加载瓶颈已成为制约训练效率的关键因素。本文将带你深入剖析PyTorch数据加载机制&a…

张小明 2026/1/9 22:46:52 网站建设

企业微信网站建设方案模板中国建设银行官网站汽车卡

少儿编程考试路径规划:考级与竞赛时间如何平衡? 解答家长最关心的三个问题 许多家长常常提出这样的疑问:“孩子学习编程,是否必须同时参加考级和竞赛?”“NCT和GESP应该如何选择?时间安排不过来怎么办?”“已经报名竞赛,还需要参加考级吗?会不会内容重叠?” 本文将…

张小明 2025/12/28 19:15:50 网站建设

网站开发专业职业规划网站开发一般学多久

PSAD:检测可疑网络流量 在网络安全领域,检测恶意流量是保障系统安全的重要环节。psad 是一款强大的工具,它能通过分析 iptables 日志来检测各种可疑的网络流量,如端口扫描、后门探测等。下面将详细介绍 psad 如何检测不同类型的端口扫描。 端口扫描检测 尽管如今许多攻击…

张小明 2026/1/9 20:48:43 网站建设

做网站比较便宜discuz 网站风格

FaceFusion与Unity集成方案:为游戏添加AI换脸功能 在如今的游戏开发中,玩家对“个性化”和“沉浸感”的要求越来越高。我们不再满足于选择预设的脸型或肤色——越来越多的人希望自己的脸能真正出现在游戏角色上,仿佛进入了一个属于自己的虚拟…

张小明 2026/1/1 15:25:51 网站建设