IDEA创建maven的spring boot项目,【极简版】切面编程+swagger调用
为一次项目创建做记录,用最少的类展示切面编程_AOP
1、项目结构:
----src
--------main
--------|---java
--------|---|----com.demo
--------|---|---|---bean
--------|---|---|---|----Caculate
--------|---|---|---config
--------|---|---|---|----LoggingAspect
--------|---|---|---|----SwaggerConfig
--------|---|---|---controller
--------|---|---|---|----TestController
--------|---|---|---|----DemoApplication
--------|---resources
--------|---|----application.yml
2、各个类展示
1)基础类(包含要调用的函数——提供方)
@Component public class Caculate{ public int add(int a,int b){ return a+b; } }
2)切面类(用于定义切面和操作)
@Aspect @Component public class LoggingAspect{ @Before("execution(* com.demo.controller.*.*(..))") public void logBeforeMethodCall(){ String name=joinPoint.getSignature().getName(); System.out.println("Calling method:"+name); } }
3)调用类(调用方)
@RestController public class TestController{ @AutoWired Caculate caculate; @GetMapping("/run") public void fun(){ int result=caculate.add(5,3); System.out.println("result:"+result); } }
4)swagger配置类(用于页面调试,可不使用)
@Configuration public class SwaggerConfig{ @Bean public Docket restfultApi(){ return new Docket(DocumentationType.SWAGGER_2) .genericModelSubstitutes(ResponseEntity.class) .select() .apis(RequestHandlerSelectors.basePackage("com.demo.controller")) .build(); } }
5)启动类
@SpringBootApplication @EnableAspectJAutoProxy @EnableSwagger2 public class DemoApplication{ public static void main(String[] args){ SpringApplication.run(DemoApplication.class); } }
6)项目配置文件
server: port: 8888
3、结果展示
Calling method: fun
result:9