栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

ssm关键步骤(2)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ssm关键步骤(2)

spring: 1.pom.xml中的文件配置

org.springframework
spring-context
5.2.5.RELEASE

插件


 
 maven-compiler-plugin
 3.1
 
 1.8
 1.8
 
 


2.spring的主配置文件

在 src/main/resources/目录现创建一个 xml 文件,文件名可以随意,但 Spring 建议的名称为 applicationContext.xml。

:用于定义一个实例对象。一个实例对应一个 bean 元素。
id:该属性是 Bean 实例的唯一标识,程序通过 id 属性访问 Bean,Bean 与 Bean 间的依赖关系也是通过 id 属性关联的。
class:指定该 Bean 所属的类,注意这里只能是类,不能是接口。

3.依赖注入

(1)set 注入



(2) 构造注入
构造注入是指,在构造调用者实例的同时,完成被调用者的实例化。即,使用构造器设置依赖关系。

标签中用于指定参数的属性有:
➢ name:指定参数名称。
➢ index:指明该参数对应着构造器的第几个参数,从 0 开始。不过,该属性不要也行,
但要注意,若参数类型相同,或之间有包含关系,则需要保证赋值顺序要与构造器中的参数
顺序一致。

对于引用类型属性的注入,也可不在配置文件中显示的注入。可以通过为标签设置 autowire 属性值,为引用类型属性进行隐式自动注入(默认是不自动注入引用类型属
性)。根据自动注入判断标准的不同,可以分为两种:

  • byName:根据名称自动注入
  • byType: 根据类型自动注入

  • -
    (3)基于注解的注入
    对于 DI 使用注解,将不再需要在 Spring 配置文件中声明 bean 实例,需要在 Spring 配置文件中配置组件扫描器,用于在指定的基本包中扫描注解。

    指定多个包的三种方式:
    1)使用多个 context:component-scan 指定不同的包路径

    2)指定 base-package 的值使用分隔符
    分隔符可以使用逗号(,)分号(;)还可以使用空格,不建议使用空格。
    3)base-package 是指定到父包名
    需要在类上使用注解@Component,该注解的 value 属性用于指定该 bean 的 id 值。
    另外,Spring 还提供了 3 个创建对象的注解:
    ➢ @Repository 用于对 DAO 实现类进行注解
    ➢ @Service 用于对 Service 实现类进行注解
    ➢ @Controller 用于对 Controller 实现类进行注解
    这三个注解与@Component 都可以创建对象,但这三个注解还有其他的含义,@Service
    创建业务层对象,业务层对象可以加入事务功能,@Controller 注解创建的对象可以作为处
    理器接收用户的请求。
    @Repository,@Service,@Controller 是对@Component 注解的细化,标注不同层的对
    象。即持久层对象,业务层对象,控制层对象。
4.面向切面编程(AOP)

AOP 底层,就是采用动态代理模式实现的。采用了两种代理:JDK 的动态代理,与 CGLIB的动态代理。
AspectJ 中常用的通知有五种类型:
(1)前置通知
(2)后置通知
(3)环绕通知
(4)异常通知
(5)最终通知
切入点表达式:execution(访问权限 方法返回值 方法声明(参数) 异常类型)
需要在pom文件中添加依赖:


junit
junit
4.11
test


org.springframework
spring-context
5.2.5.RELEASE


org.springframework
spring-aspects
5.2.5.RELEASE

5.AspectJ 基于注解的 AOP 实现:


B、 Step2:定义切面类


D、Step4:注册 AspectJ 的自动代理
在定义好切面 Aspect 后,需要通知 Spring 容器,让容器生成“目标类+ 切面”的代理
对象。这个代理是由容器自动生成的。只需要在 Spring 配置文件中注册一个基于 aspectj 的
自动代理生成器,其就会自动扫描到@Aspect 注解,并按通知类型与切入点,将其织入,并
生成代理

E、 Step5:测试类中使用目标对象的 id

  • @Before 前置通知-方法有 JoinPoint 参数
  • @AfterReturning 后置通知-注解有 returning 属性
  • @Around 环绕通知-增强方法有 ProceedingJoinPoint
  • @AfterThrowing 异常通知-注解中有 throwing 属性
  • @After 最终通知

@Pointcut 定义切入点:当较多的通知增强方法使用相同的 execution 切入点表达式时,编写、维护均较为麻烦。
AspectJ 提供了@Pointcut 注解,用于定义 execution 切入点表达式。

6.spring集成mybatis

(1)在pom文件中添加依赖


org.springframework
spring-context
5.2.5.RELEASE


org.springframework
spring-tx
5.2.5.RELEASE


org.springframework
spring-jdbc
5.2.5.RELEASE


org.mybatis
mybatis
3.5.1


org.mybatis
mybatis-spring
1.3.1


mysql
mysql-connector-java
5.1.9


com.alibaba
druid
1.1.12

(2)mybatis.xml的配置

(3)主配置文件applicationcontext.xml

7.事务管理

通过@Transactional 注解方式,可将事务织入到相应 public 方法中,实现事务管理。
采用spring实现注解的事务步骤:

  1. 声明事务管理器
  2. 开启注解驱动
  3. 业务层 public 方法加入事务属性

    采用 AspectJ 的 AOP 配置管理事务
    Step1:maven 依赖 pom.xml
    新加入 aspectj 的依赖坐标

org.springframework
spring-aspects
5.2.5.RELEASE

Step2:在容器中添加事务管理器

Step3:配置事务通知
为事务通知设置相关属性。用于指定要将事务以什么方式织入给哪些方法。例如,应用到 buy 方法上的事务要求是必须的,且当 buy 方法发生异常后要回滚业务。

Step4:配置增强器
指定将配置好的事务通知,织入给谁。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/924911.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号