Springboot笔记

2018-10-28  本文已影响0人  61etj

控制层

@RestController   //使用festful风格的api
public classs HelloController{
    @ReuqestMapping(value="/路径/{参数}",method=RequestMethod.GET)//等同于@GetMapping(value="/路径")
    public String say(@PathVariable("参数") Integer id){
        
    }
}

等同于以下
@Controller     //(类如果只使用这个需要增加模板,类似Jsp)
@ResponseBody

获取请求参数

@PathVariable("参数")//从路径获取参数
@RequestParam("参数")//传统的获取注解方式
@RequestParam(value="参数",required=false,defaultValue="0")//设置非必传,默认为0

从application.yml中获取数据

@value("${直接属性}")
private String 任意名

@ConfigurationProperties(prefix="配置的直接属性上级")
public class 上级Properties

Service

@Service
public class StyleService {

    @Autowired
    private StyleRepository styleRepository;

    public List<Style> styleList() {
        return styleRepository.findAll();
    }
}

AOP

@Aspect
@Component
public class SingAop {

    @Pointcut("execution(public * com.lrvik.goodsmanager.controller.*.*(..))")//切点,参数为正则表达式,表示需要拦截的方法
    public void webSign() {
    }


    //拦截到会环绕调用一下方法
    @Around("webSign()")
    public Object doAround(ProceedingJoinPoint joinPoint) throws Throwable {

        try {
            ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
            HttpServletRequest request = attributes.getRequest();
            
            //这里可以获取请求对象中的所有数据
            String sign = request.getHeader("");
            
            return joinPoint.proceed();
        } catch (Exception e) {
            return new BaseResult(0, e.getMessage());
        }


    }

}
上一篇下一篇

猜你喜欢

热点阅读