
applicationContext.xml
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.1.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.1.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task-34.1.xsd
http://www.springframework.org/schema/p
http://www.springframework.org/schema/p ">
<!-- 配置数据访问层-->
<bean id="userDao" class="dao.impl.UserDaoImpl"/>
<!-- 业务逻辑层-->
<!-- p命名空间注入-->
<bean id="userService" class="service.impl.UserServiceImpl" p:ud-ref="userDao" p:str="我是一只小小小小鸟。。。。"/>
</beans>

applicationContext.xml
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.1.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.1.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task-34.1.xsd
http://www.springframework.org/schema/p
http://www.springframework.org/schema/p ">
<!-- 构造注入-->
<bean id="showSpeak1" class="com.oupeng.speak.impl.SpeakImpl">
<constructor-arg index="0" type="String">
<value>张嘎</value>
</constructor-arg>
<constructor-arg index="1" type="String">
<value>三天不打小鬼子,手都痒痒!</value>
</constructor-arg>
</bean>
<bean id="showSpeak2" class="com.oupeng.speak.impl.SpeakImpl">
<constructor-arg index="0" type="String">
<value>Rod</value>
</constructor-arg>
<constructor-arg index="1" type="String">
<value>世界上有10种人,认识二进制的和不认识二进制的。</value>
</constructor-arg>
</bean>
</bean>

applicationContext.xml
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.1.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.1.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task-34.1.xsd
http://www.springframework.org/schema/p
http://www.springframework.org/schema/p ">
<!-- 增强处理类的配置(使用注解)-->
<bean class="aop.afterLogger"></bean>
<bean class="aop.ArroundLogger"></bean>
<bean class="aop.ErrorLogger"></bean>
<bean class="logger.UserServiceLogger"></bean>
<!-- 启动注解的支持-->
<aop:aspectj-autoproxy/>
<!-- 配置数据访问层-->
<bean id="userDao" class="dao.impl.UserDaoImpl"/>
<!-- 配置业务逻辑层-->
<bean id="userService" class="service.impl.UserServiceImpl">
<constructor-arg index="0">
<ref bean="userDao"/> <!-- 将 dao.impl.UserDaoImpl创建的对象注入到 service.impl.UserServiceImpl中-->
</constructor-arg>
<constructor-arg index="1" type="String">
<value>我是一只小小小小鸟。。。。</value>
</constructor-arg>
</bean>
</bean>
UserServiceLogger
package logger;
import org.apache.log4j.Logger;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import java.util.Arrays;
//定义用于增强处理的类
@Aspect
public class UserServiceLogger {
private static final Logger log = Logger.getLogger(UserServiceLogger.class);
@Pointcut("execution(* service.UserService.*(..))")
public void pointCut() {
}
// 定义用于前置增强处理的方法
@Before("pointCut()")
public void beforePrintLogger(JoinPoint jp) {
log.info("调用" + jp.getTarget() + "的" + jp.getSignature().getName() + "方法,方法参数" + Arrays.toString(jp.getArgs()));
}
// 定义用于后置增强处理的方法
@AfterReturning(pointcut = "pointCut()", returning = "result")
public void afterReturningPrintLogger(JoinPoint jp, Object result) {
log.info("调用" + jp.getTarget() + "的" + jp.getSignature().getName() + "方法,方法返回值" + result);
}
}
本文详细介绍了Spring框架的配置方法,包括数据访问层、业务逻辑层的配置,以及如何使用注解进行AOP(面向切面编程)的配置。通过具体的XML配置示例,展示了构造注入、依赖注入等技巧,并解释了如何启用AOP的注解支持。

被折叠的 条评论
为什么被折叠?



