SpringBoot系列(1)---无配置文件配置基础1

今天开始写关于SpringBoot的笔记,当然这个笔记也是主要给我自己看的。如果有其他开发者也在看我写的笔记的话,提醒一下 SpringBoot的笔记是建基于你已经熟悉使用Spring的前提地下去看的,当然我也会尽可能去重温一下Spring的东西。

关于SpringBoot 这个技术其实近段时间随着SpringCloud越来越火(所谓的微服务)SpringBoot也随着火起来了。其实Spring在3.X已经提供了纯annotation的配置,随着servlet3.0 无配置文件变得流行起来。不需要额外的WEB服务,因为WEB容器已经直接嵌入到你的项目当中,启动程序你只需要执行你写好的main方法即可启动web应用,听起来的确是挺让人兴奋的,笔者在上年 年初学习的SpringBoot,最近也准备认真研究一下SpringCloud 所以特意将SpringBoot的笔记写一下,顺便帮自己重温SpringBoot的技术。别废话马上开始····


首先我们老规矩,贴出maven 的依赖:

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-context</artifactId>
  <version>${spring.version}</version>
</dependency>

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-aspects</artifactId>
  <version>${spring.version}</version>
</dependency>

注意如果你想加载的快,建议用Spring的repository:

<repositories>
  <repository>
    <id>io.spring.repo.maven.release</id>
    <url>http://repo.spring.io/release/</url>
  </repository>
</repositories>

聪明的你或许已经看见我有写上Aspect的依赖了,所以我们先做一下AOP的测试,关于Spring-aspects的使用,我以前有一篇详细到我自己都不知道原来写得这么详细,给出哆啦B梦的任意门:Spring AOP 之 Aspect


一、AOP AspectJ

然后我们尝试使用Anntation注解织入和execution表达式织入的AOP

1、定义目标 annotation

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Action {
    String name();
}

2、编写代织入测试的service类

@Service
public class DemoAnntationService {

    @Action(name = "What the Fuck")
    public void add(){
        System.out.println("add executed!");
    }

}
@Service
@Scope("prototype")
public class DemoMethodService {

    public void add(){
        System.out.println("DemoMethodService add() executed!");
    }

}

3、编写织入配置类

@Aspect
@Component
public class LogAspect {

    @Pointcut("@annotation(com.tony.config.Action)")
    public void annotationPointCut() {
    }

    

    @After("annotationPointCut()")
    public void after(JoinPoint joinPoint) {
        MethodSignature signature = (MethodSignature) joinPoint.getSignature();
        Method method = signature.getMethod();
        Action action = method.getAnnotation(Action.class);
        System.out.println("注解方式拦截:" + action.name());
    }


    @Before("execution(* com.tony.service.DemoMethodService.add())")
    public void before(JoinPoint joinPoint) {
        MethodSignature signature = (MethodSignature) joinPoint.getSignature();
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值