区块链技术博客
www.b2bchain.cn

Spring&MVC应用—-第三章

这篇文章主要介绍了Spring&MVC应用—-第三章的讲解,通过具体代码实例进行16412 讲解,并且分析了Spring&MVC应用—-第三章的详细步骤与相关技巧,需要的朋友可以参考下https://www.b2bchain.cn/?p=16412

本文实例讲述了2、树莓派设置连接WiFi,开启VNC等等的讲解。分享给大家供大家参考文章查询地址https://www.b2bchain.cn/7039.html。具体如下:

Spring注解

文章目录

    • Spring注解
  • 前言
  • 知识点
  • 食材


前言

本章知识点难以理解,可结合第一/二章作业食用。


知识点

传统的 Spring 做法是使用.xml 文件来对 bean 进行诸如或者是配置 aop、事务,这么做有两个缺点:

  • 如果所有的内容都配置在 xml 文件中,那么 xml 文件将会十分庞大;如果按需求分开 xml 文件,那么
    xml 文件又会非常多。总之这将导致配置文件的可读性和可维护性变得很低。
  • 在开发中在.java 文件和.xml 文件之间不断切换,是一件非常麻烦的事,同时这种思维上的不连贯也会
    降低开发的效率。
    为了解决这两个问题, Spring 引入了注解,通过“ @XXX”的方式,让注解与 Java Bean 紧密结合,既大大减少了配置文件的体积,又增加了 Java Bean 的可读性和内聚性

例中用一个叫做 p1 的空方法来表示一个切入点,当希望将通知织入该切入点时,在注解中用方
法签名来代替切入点表达式即可。由于切入点的声明和通知的声明在同一个类中,可以省略包路径和类名。

食材

使用注解的方式重构第二章的 AOP 案例。
实现步骤:
1) 创建 Web 项目 phoneannotation,并导入 jar 包
Spring&MVC应用----第三章
2) 在 src 下创建 com.ysd.test 包,并在其中创建 PhoneBiz 接口、 PhoneBizImpl 实现类、 Test 测试类和 LogAspect切面类。

package com.test; public interface PhoneBiz { public void buyPhone(int num);//购买手机 public void salePhone(int num);//销售手机 } 
package com.test; public class PhoneBizImpl implements PhoneBiz { public void buyPhone(int num) { System.out.println("手机进货,进货数量为"+num+"部"); } public void salePhone(int num) { System.out.println("销售手机,销售数量为"+num+"部"); } } } 
package com.test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Test { public static void main(String[] args) { ApplicationContext context= new ClassPathXmlApplicationContext("applicationContext.xml"); PhoneBiz phoneBiz = (PhoneBiz) context.getBean("phoneBiz"); phoneBiz.buyPhone(10); } } } 
@Aspect // 将该类标记为切面 public class LogAspect { // 切入点 @Pointcut("execution( void *Phone(int))") public void p1() {} // 前置通知,方法执行之前执行 // @Before("com.ysd.test.LogAspect.p1() ") @Before("p1() ") public void before(JoinPoint jp) { Object[] args = jp.getArgs();// 目标方法所有参数 String methodName = jp.getSignature().getName();// 获得目标方法名称 if ("buyPhone".equals(methodName)) {60 System.out.println(currentTime() + "即将执行进货操作,数量为" + args[0]); } if ("salePhone".equals(methodName)) { System.out.println(currentTime() + "即将执行销售操作,数量为" + args[0]); } } // 省略其它方法 } 

3) 在 src 下创建 applicationContext.xml,并输入以下代码:

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd"> <!-- 启用注解配置 --> <aop:aspectj-autoproxy /> <!-- 目标业务对象 --> <bean id="phoneBiz" class="com.ysd.test.PhoneBizImpl"></bean> <!-- 日志管理切面 --> <bean class="com.ysd.test.LogAspect"></bean> </beans> 

本文转自互联网,侵权联系删除Spring&MVC应用—-第三章

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » Spring&MVC应用—-第三章
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们