Spring补充

一.Spring JDB

配置两个jar包

<!-- spring-jdbc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.2.2.RELEASE</version>
</dependency>
<!-- 阿里数据源 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>

在数据的.xml文件中导入属性文件:

<context:property-placeholder location="config.properties"/>

将Spring和数据库连接

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driverClassName" value="${driver}"></property>
        <property name="url" value="${url}"></property>
        <property name="username" value="${account}"/>
        <property name="password" value="${password}"></property>
        <property name="initialSize" value="10"></property>
        <property name="minIdle" value="5"></property>
        <property name="maxWait" value="2000"></property>
        <property name="maxActive" value="20"></property>
    </bean>

并配置jdbc

 <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource" ref="dataSource"></property>
  </bean>

就可以在类中获得jdbcTemplate对象,

常用方法为:

execute:无返回值,执行ddl,增删改

update:执行新增.修改.删除

queryForXXX:执行查询相关语句

AOP概述

通过预编译方式和运行期间动态代理实现程序功能的统一维护的,使用动态代理的方式在执行方法

前后或者出现异常的时候做加入相关的逻辑

将业务代码和非业务代码进行隔离,降低耦合度,提高可重用性,提高开发效率

面向切面编程的好处就是: 减少重复,专注业务;

注意:面向切面编程只是面向对象编程的一种补充。

适用于事务出现异常回滚事务判断权限,执行前的日志处理

关键词:

连接点(Joinpoint):类中可以被增强的方法,这个方法就被称为连接点

切入点(pointcut):类中有很多方法可以被增强,但实际中只有 add 和 update 被增了,那么

add 和 update 方法就被称为切入点(实际实现的连接点)

通知(Advice): 通知是指一个切面在特定的连接点要做的事情(增强的功能)。通 知分为方法执行前

通知,方法执行后通知,环绕通知等.

切面(Aspect):把通知添加到切入点的整个过程称为切面.

目标(Target): 代理的目标对象(连接点,切入点所在类)

代理(Proxy): 向目标对象应用通知时创建的代理对象

二.stringAOP实现

1.配置

配置相关jar包

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>5.2.2.RELEASE</version>
</dependency>

基于 aspectj 的 xml 配置方式实现

<bean id="aopdemo" class="com.ff.spring.aop.AopDemo"></bean>
<aop:config>
<!-- 配置切入点 -->
<aop:pointcut expression="execution(*
com.ff.spring.service.UserService.adduser(..))" id="adduser"/>
<aop:pointcut expression="execution(*
com.ff.spring.service.UserService.*(..))" id="allmethod"/>
<!-- 配置通知和切入点 -->
<aop:aspect ref="aopdemo">
<aop:before method="savelog" pointcut-ref="adduser"/>
<aop:after method="savelog" pointcut-ref="adduser"/>
<aop:around method="aroundAdvice" pointcut-ref="adduser"/>
<aop:after-throwing method="exceptionAdvice" pointcut-ref="allmethod"
throwing="e" />
</aop:aspect>
</aop:config>

 

通知有五种:

前置通知:运行前触发

后置通知:运行后未出现异常才触发

最终通知:运行后无论是否异常都触发

异常通知:有异常触发

环绕通知:自己配置的

2.注解实现方式:

启动支持:

<aop:aspectj-autoproxy />

类上配置:

@Component

@Aspect

要用的方法配置相应的,并配入切入点表达式,看上方

@Before(" ")

@After(" ")

@Around(" ")

@AfterThrowing(" ")

@AfterReturning(" ")

三.事务管理行为

一个事务方法被另一个事 务方法调用时,这个事务方法应该如何进行。

七种事务传播行为:

集成Mybatis

导入jar包

<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.1</version>
</dependency>

配置sqlSessionFactory

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="configLocation" value="classpath:mybatis-config.xml"></property>
<property name="mapperLocations" value="classpath:mappers/*Mapper.xml">
</property>
</bean>

生成接口代理

<bean id="mapperFactory" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.ff.ssm.dao"></property>
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory">
</property>
</bean>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值