Spring注解

2017-11-10  本文已影响0人  蕊er

1)引入相关配置文件

<?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:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd">

    <!--指定扫描base-package指定包名下的所有类中的注解,扫描时会扫描所有包下子孙类-->
    <context:component-scan base-package="sd2.entity"/>

    <bean id="zoo" class="com.bean.car" />
</beans>

2)常用注解

3)junit与spring结合

测试时创建容器并且指定创建容器的配置文件

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class TestDemo1 {
    @Resource(name = "user")
    private User user;

    @Test
    public void func1() {
        System.out.println(user);
    }
}

4)注解配置AOP

<!--配置目标对象-->
<bean class="com.spring.learn3.entity.UserServiceImpl" name="target"/>
<!--配置通知对象-->
<bean class="com.spring.learn3.entity.MyAdvice" name="advice"/>
<!--开启使用注解完成注入-->
<aop:aspectj-autoproxy></aop:aspectj-autoproxy>
//表示该类是一个通知类
@Aspect
public class MyAdvice {
    //配置方法1
    @Pointcut("execution(* com.spring.learn3.entity.*ServiceImpl.*(..))")
    public void advice(){}
    // 前置通知
    @Before("MyAdvice.advice()")
    public void before() {
        System.out.println("这是前置通知");
    }
    //配置方法2
    // 后置通知(如果出现异常不会通知)
    @AfterReturning("execution(* com.spring.learn3.entity.*ServiceImpl.*(..))")
    public void after() {
        System.out.println("这是后置通知,如果出现异常不会调用");
    }
}
上一篇下一篇

猜你喜欢

热点阅读