首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

采取annotation的方式配置Spring的IOC和AOP

2013-04-02 
采用annotation的方式配置Spring的IOC和AOP项目(包)列表:???xml version1.0 encodingUTF-8?web-a

采用annotation的方式配置Spring的IOC和AOP

项目(包)列表:


采取annotation的方式配置Spring的IOC和AOP采取annotation的方式配置Spring的IOC和AOP
?

?

<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><!--spring 配置文件位置--><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring.xml</param-value></context-param><!--spring 监听器--><listener><description>spring监听器</description><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>  <welcome-file-list>    <welcome-file>index.jsp</welcome-file>  </welcome-file-list></web-app>

?

<?xml version="1.0" encoding="utf-8"?><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"xsi:schemaLocation="http://www.springframework.org/schema/beans  http://www.springframework.org/schema/beans/spring-beans-2.5.xsd  http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd http://www.springframework.org/schema/aop  http://www.springframework.org/schema/aop/spring-aop-2.5.xsd    http://www.springframework.org/schema/context       http://www.springframework.org/schema/context/spring-context-2.5.xsd ">    <!-- 采用的annotation的方式进行AOP和 IOC -->    <!-- 配置了component-scan可以移除 --> <context:annotation-config /> <!-- 启动对@AspectJ注解的支持 --><aop:aspectj-autoproxy /> <!-- 自动扫描包(自动注入) --><context:component-scan base-package="yingjun" />  </beans>

?

package yingjun.aop;import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.annotation.AfterReturning;import org.aspectj.lang.annotation.AfterThrowing;import org.aspectj.lang.annotation.Around;import org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.annotation.Before;import org.aspectj.lang.annotation.Pointcut;import org.springframework.stereotype.Component;@Component("aop")@Aspectpublic class AopMethod {@Pointcut("execution( * yingjun.service..*.*(..))")public void myMethod(){}@Before("execution( * yingjun.service..*.*(..))")//表示yingjun.service下任何包下任何类任何返回值的任何方法public void beforeMethod(){System.out.println("before method...AOP!!!!");}@AfterReturning("myMethod()")public void AfterReturningMethod(){System.out.println("After  Returning  normal...AOP!!!!");}@AfterThrowing("myMethod()")public void AfterThrowing(){System.out.println("After Throwing...AOP!!!!");}@Around("myMethod()")public void Around(ProceedingJoinPoint pjp) throws Throwable{System.out.println("method around start!!!!");pjp.proceed();System.out.println("method around end!!!!");}}/*public class AopMethod {public void beforeMethod(){System.out.println("before method...AOP!!!!");}public void AfterReturningMethod(){System.out.println("After  Returning  normal...AOP!!!!");}public void AfterMethod(){System.out.println("After  method...AOP!!!!");}public void AfterThrowing(){System.out.println("After Throwing...AOP!!!!");}}*/

?

package yingjun.service;import yingjun.model.User;public interface UserServiceI {/*用户操作*/public void DoUser(User use);}

?

package yingjun.service.impl;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Component;import yingjun.dao.UserDaoI;import yingjun.model.User;import yingjun.service.UserServiceI;@Component("userService")public class UserServiceImpl implements UserServiceI {private UserDaoI userdao;public void DoUser(User user) {userdao.SaveUser(user);}public UserDaoI getUserdao() {return userdao;}//@Autowired按byType自动注入,如果想用byName则使用@Qulifie,//而@Resource默认按name,name找不到,按类型@Autowiredpublic void setUserdao(UserDaoI userdao) {this.userdao = userdao;}}

?

package yingjun.dao;import yingjun.model.User;public interface UserDaoI   {public void AddUser(User user );public void DeleteUser(User user );public void SaveUser(User user );}

?

package yingjun.dao.impl;import org.springframework.stereotype.Component;import org.springframework.stereotype.Repository;import yingjun.dao.UserDaoI;import yingjun.model.User;@Component("userdao")public class UserDaoImpl implements UserDaoI{public void AddUser(User user ) {System.out.println("增加用户成功");}public void DeleteUser(User user ) {System.out.println("删除用户成功");}public void SaveUser(User user ) {System.out.println("保存用户成功");}}

?

package yingjun.model;public class User {private int id;private String name;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}}

?

package yingjun.test;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import yingjun.model.User;import yingjun.service.UserServiceI;public class SpringTest {@Testpublic void springtest(){ApplicationContext ac=new ClassPathXmlApplicationContext("spring.xml");UserServiceI us=(UserServiceI)ac.getBean("userService");User user=new User();us.DoUser(user);}}

??运行结果:
采取annotation的方式配置Spring的IOC和AOP
?

热点排行