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