SpringBoot组件注册容器⽅式Controller返回值拦截
⼀、组件注册到容器⽅式
1. 包扫描+注解:@ComponentScan包扫描,然后使⽤@Controller/@Service/@Repository注解;
springboot框架的作用 2. 在配置类⾥声明@Bean;
3. 在配置类⾥导⼊组件@Import;
A. 直接导⼊组件:@Import({Color.class});
B. ⾃定义导⼊的组件:@Import({MyImportSelector.class}),其中MyImportSelector要实现ImportSelector;
C. ⼿动注册要导⼊的组件:@Import({MyImportBeanDefinitionRegistrar.class}),其中MyImportBeanDefinitionRegistrar要实现ImportBeanDefinitionRegistrar;
4. 使⽤Spring提供的FactoryBean:这个类似在配置类⾥声明@Bean。
注:在配置类⾥才⽣效(@Configuration)
⼆、Controller层返回值拦截
1. AOP切⾯完成:Object result = proceedingJoinPoint.proceed();
2. 实现ResponseBodyAdvice接⼝:@ControllerAdvice注解作⽤在类上;
@ControllerAdvice
public class ResponseBodyInter implements ResponseBodyAdvice {
@Override
public Object beforeBodyWrite(Object body, MethodParameter arg1,
MediaType arg2, Class arg3, ServerHttpRequest arg4,
ServerHttpResponse arg5) {
System.out.println(body+"获取");
return body;
}
@Override
public boolean supports(MethodParameter arg0, Class arg1) {
return true;
}
}
3. Interceptor:这个不能直接拿,所以不推荐使⽤。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论