spring关于配置类注释添加AOP切面

@Component
@Aspect
public class LogAspact {

    private Logger log = LoggerFactory.getLogger(this.getClass());

    @Pointcut("execution(* com.liqk.service..*.*(..))")
    public void pointCut(){}

    @Before("pointCut()")
    public void start(JoinPoint jp){
        String mName = jp.getSignature().getName();
        String cName = jp.getSignature().getDeclaringTypeName();
        log.info("{}-{}:开始执行",cName,mName);
    }
    @After("pointCut()")
    public void end(JoinPoint jp){
        String mName = jp.getSignature().getName();
        String cName = jp.getSignature().getDeclaringTypeName();
        log.info("{}-{}:执行结束",cName,mName);
    }
}

注意添加完毕后需要在配置类添加 @EnableAspectJAutoProxy
配置类上需要设置后 才能识别AOP的注解内容
@EnableAspectJAutoProxy(proxyTargetClass = true)


Spring 提供的基于Java类的配置声明 可以使用Java类来替代XML文件
最终达到无配置文件的效果  但使用纯粹的Java配置类来进行项目配置的话
部分配置的耦合度太高 最终还是建议 配置文件和 配置类 混合使用
希望Spring识别到当前类是一个配置类 则必须在该类上面添加@Configuration
Spring容器在启动时 会扫描当前声明有@Configuration注解的Java类 并以该类为容器的配置信息初始化容器

/**
 * Spring 提供的基于Java类的配置声明 可以使用Java类来替代XML文件
 * 最终达到无配置文件的效果  但使用纯粹的Java配置类来进行项目配置的话
 * 部分配置的耦合度太高 最终还是建议 配置文件和 配置类 混合使用
 * 希望Spring识别到当前类是一个配置类 则必须在该类上面添加@Configuration
 * Spring容器在启动时 会扫描当前声明有@Configuration注解的Java类 并以该类为容器的配置信息初始化容器
 */

@Configuration
//在配置类上开启全局扫描 可以获取指定的配置注解 并开始执行Bean管理以及注入内容
@ComponentScan("com.wangbx")
//表示以当前类为主配置类  可以在该类中引入其他配置类 会相关类类型
@Import(UtilConfig.class)
/*在Spring的注解或者一些配置标签中 可以使用classpath字符串 表示当前根目录*/
@ImportResource("classpath:shopping.xml")
/*
* 配置类上需要设置后 才能识别AOP的注解内容
* */
@EnableAspectJAutoProxy(proxyTargetClass = true)
public class ApplicationConifg {

/*
* 在配置类中 管理第三方Bean
* 只需要在当前的配置类中进行Bean的注册 该注册需要使用注解 @Bean
* 当默认情况下  @Bean管理的 Bean对象名称 在容器中的命名 和 当前方法名一致
*
* 也可以通过@Bean的name属性来重新定义Bean在容器中的名称
*
* 通过@Bean来管理第三方Bean时  只需要提供一个公共的方法 返回值是目标对象类型即可
* Spring会将该返回值 当做容器要管理的Bean
* */
  /*  @Bean("abc")
    @Scope("prototype")
    public Date registTime(){
        return new Date(2000,6,18);
    }*/

//    从容器中获取指定的Bean 并注入值属性中

    @Autowired
    private TestBean testBean;

    /*
    *  将自己的Bean 注入值第三方Bean中
    * */
    @Bean public Utils utils(){
        Utils utils = new Utils();
//        此处需要注入的是容器中的TestBean 而不是手动创建
        utils.setTbean(testBean);
        return utils;
    }

    /*
    * 第三方注入第三方
    * */
    @Bean @Lazy
    public Math math(){
        Math math = new Math();
//        此处的Utils对象需要从容器获取 不能自己手动创建
//        可以通过 调用@Bean管理的方法即可
        math.setUtils(utils());
        return math;

    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值