1 路径映射
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/02")
.setViewName("02");
}
}
2 参数类型转换
- Post请求,参数可以是key-value形式,也可以是json形式;
- 自定义的类型转换器对 key-value 形式的参数有效;
- JSON 形式的参数,不需要类型转换器;是通过
HttpMessageConverter 转换
2.1 案例1
3 自定义首页
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/index").setViewName("index");
}
}
4 整合AOP
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
@Service
public class UserService {
public String getUserById(Integer id) {
System.out.println("getUserById");
return "user";
}
public void deleteUserById(Integer id){
System.out.println("delete id:"+ id);
}
}
@Component
@Aspect
public class LogAspect {
@Pointcut("execution(* com.tzb.aopspringboot.service.*.*(..))")
public void pc1() {
}
@Before("pc1()")
public void before(JoinPoint jp) {
String name = jp.getSignature().getName();
System.out.println(name + " 方法开始执行了。。。");
}
@After("pc1()")
public void after(JoinPoint jp) {
String name = jp.getSignature().getName();
System.out.println(name + " 方法执行结束。。。");
}
@AfterReturning(value = "pc1()",returning = "s")
public void afterReturning(JoinPoint jp,String s){
String name = jp.getSignature().getName();
System.out.println(name + " 方法的返回值是:" + s);
}
@AfterThrowing(value = "pc1()",throwing = "e")
public void afterThrowing(JoinPoint jp,Exception e){
String name = jp.getSignature().getName();
System.out.println(name + " 方法的返回值是:" + e.getMessage());
}
public Object around(ProceedingJoinPoint pjp){
try {
Object proceed = pjp.proceed();
return proceed;
} catch (Throwable throwable) {
throwable.printStackTrace();
}
return null;
}
}
|