
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: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">
<bean id="showSpeak1" class="com.oupeng.speak.Speak">
<property name="speakPerson">
<value>张嘎</value>
</property>
<property name="speakContent">
<value>三天不打小鬼子,手都痒痒!</value>
</property>
</bean>
<bean id="showSpeak2" class="com.oupeng.speak.Speak">
<property name="speakPerson">
<value>Rod</value>
</property>
<property name="speakContent">
<value>世界上有10种人,认识二进制的和不认识二进制的。</value>
</property>
</bean>
</beans>
Speak类
package com.oupeng.speak;
public class Speak {
private String speakPerson;
private String speakContent;//说话内容
public void showSpeak(){
System.out.println(this.speakPerson+"说:“"+this.speakContent+"”");
}
public String getSpeakPerson() {
return speakPerson;
}
public void setSpeakPerson(String speakPerson) {
this.speakPerson = speakPerson;
}
public String getSpeakContent() {
return speakContent;
}
public void setSpeakContent(String speakContent) {
this.speakContent = speakContent;
}
}
TestSpeak
package com.oupeng.test;
import com.oupeng.speak.Speak;
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestSpeak {
@Test
public void test1() {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
Speak speak1 = (Speak) context.getBean("showSpeak1");
speak1.showSpeak();
Speak speak2 = (Speak) context.getBean("showSpeak2");
speak2.showSpeak();
}
}


Print类
package com.oupeng.printer;
import com.oupeng.lnk.Lnk;
import com.oupeng.paper.Paper;
//定义打印机类
public class Printer {
private Lnk lnk;
private Paper paper;
// 实现打印机的打印功能
public void printInfo(){
System.out.println("打印机在"+this.getPaper().getSize()+"上使用"+this.getLnk().getColor()+"打印人民币。。。。。");
}
public Lnk getLnk() {
return lnk;
}
public void setLnk(Lnk lnk) {
this.lnk = lnk;
}
public Paper getPaper() {
return paper;
}
public void setPaper(Paper paper) {
this.paper = paper;
}
}
Paper接口
package com.oupeng.paper;
//定义纸张
public interface Paper {
// 定义规格
public String getSize();//返回纸张的规格
}
- A4Paper类
package com.oupeng.paper.impl;
import com.oupeng.paper.Paper;
public class A4Paper implements Paper {
@Override
public String getSize() {
return "A4";
}
}
- B5Paper类
package com.oupeng.paper.impl;
import com.oupeng.paper.Paper;
public class B5Paper implements Paper {
@Override
public String getSize() {
return "B5";
}
}
Lnk接口
package com.oupeng.lnk;
//定义墨盒
public interface Lnk {
public String getColor();//显示墨盒的颜色
}
- colorLnk类
package com.oupeng.lnk.impl;
import com.oupeng.lnk.Lnk;
public class ColorLnk implements Lnk {
@Override
public String getColor() {
return "彩色墨盒";
}
}
- GrayLnk类
package com.oupeng.lnk.impl;
import com.oupeng.lnk.Lnk;
public class GrayLnk implements Lnk {
@Override
public String getColor() {
return "黑白墨盒";
}
}


用于增强的类
package com.oupeng.logger;
import org.apache.log4j.Logger;
import org.aspectj.lang.JoinPoint;
import java.util.Arrays;
//定义用于增强处理的类
public class UserServiceLogger {
private static final Logger log = Logger.getLogger(UserServiceLogger.class);
//前置增强
public void beforePrintLogger(JoinPoint jp) {
log.info("调用" + jp.getTarget() + "的" + jp.getSignature().getName() + "方法,方法参数" + Arrays.toString(jp.getArgs()));
}
// 定义用于后置增强处理的方法
public void afterReturningPrintLogger(JoinPoint jp, Object result) {
log.info("调用" + jp.getTarget() + "的" + jp.getSignature().getName() + "方法,方法返回值" + result);
}
}
UserDao接口
package com.oupeng.dao;
import com.oupeng.pojo.User;
public interface UserDao {
public int save(User user);
}
- UserDaoImpl
package com.oupeng.dao.impl;
import com.oupeng.dao.UserDao;
import com.oupeng.pojo.User;
public class UserDaoImpl implements UserDao {
@Override
public int save(User user) {
System.out.println("保存用户到数据库");
return 1;
}
}
UserService接口
package com.oupeng.dao;
import com.oupeng.pojo.User;
public interface UserDao {
public int save(User user);
}
- UserServiceImpl类
package com.oupeng.service.impl;
import com.oupeng.dao.UserDao;
import com.oupeng.dao.impl.UserDaoImpl;
import com.oupeng.pojo.User;
import com.oupeng.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
public class UserServiceImpl implements UserService {
UserDao ud;
@Override
public int addNewUser(User user) {
ud.save(user);
return 2;
}
public void setUd(UserDao ud) {
this.ud = ud;
}
public UserDao getUd() {
return ud;
}
}
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: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">
<!-- 配置数据访问层-->
<bean id="userDao" class="com.oupeng.dao.impl.UserDaoImpl"/>
<!-- 配置业务逻辑层-->
<bean id="userService" class="com.oupeng.service.impl.UserServiceImpl">
<!-- 将 com.oupeng.dao.impl.UserDaoImpl创建的对象注入到 ud中使用(这个过程是Spring实现的)-->
<property name="ud" ref="userDao"></property>
</bean>
<!-- 配置用于增强处理的Bean组件-->
<bean id="userServiceLogger" class="com.oupeng.logger.UserServiceLogger"></bean>
<!-- 开始进行AOP的配置 -->
<aop:config>
<!--先配置切入点-->
<aop:pointcut id="pointCut" expression="execution(public int addNewUser(com.oupeng.pojo.User))"/>
<!--切面-->
<aop:aspect id="" ref="userServiceLogger">
<!-- 前置增强-->
<aop:before method="beforePrintLogger" pointcut-ref="pointCut"/>
<!-- 后置增强-->
<aop:after-returning method="afterReturningPrintLogger" pointcut-ref="pointCut" returning="result"/>
</aop:aspect>
</aop:config>
</beans>

该博客主要探讨了Spring框架中的配置文件`applicationContext.xml`,详细介绍了如何配置及实例化各种类和接口,包括Speak类、TestSpeak、Print类、Paper接口及其实现类A4Paper和B5Paper,还有Lnk接口以及其实现类colorLnk和GrayLnk。此外,还讨论了用于增强功能的类以及UserDao和UserService接口的实现,如UserDaoImpl和UserServiceImpl。
707

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



