Spring使用细节
● 注入属性
//根据bean的类型注入 @AutoWired //根据bean的id注入 @Resource
● component-scan标签只能用一个,扫描多个包要用逗号分隔
<context:component-scan base-package="cn.e3mall.service,cn.e3mall.controller"/>
● 有时浏览器插件对json类型数据支持不好,需要springmvc要给前台返回text-plain类型
@RequestMapping(value="/pic/upload",produces=MediaType.TEXT_PLAIN_VALUE+";charset=utf-8")
● 用spring的core包下的方法md5加密
String md5 = DigestUtils.md5DigestAsHex(user.getPassword().getBytes());
● 用在Controller方法参数里的注解
@RequestBody //获取post请求体里的json @PathVariable //获取请求路径上的参数 @RequestParam(defaultValue = "0") //若传来null,给参数赋默认值 @RequestParam(required = false)//指定该参数不必传,默认值为true
● 使某个Controller能被不用域名的js访问(实现跨域):
在Controller类上加 @CrossOrigin
● Springmvc接收日期类型
@DateTimeFormat(pattern="yyyy-MM-dd") private Date reserveSignEndDate;
● post请求也能带请求参数,不能写在请求体里。接收参数是对象和属性时,属性必须加@requestParam:
@PostMapping public Result addBrand(Brand brand, @RequestParam List<Long> cids)
此时前端请求的List参数用逗号分隔:
● spring快速异步
1.在线程池配置类上加注解
@EnableAsync(mode = AdviceMode.ASPECTJ)
其中mode可指定通知类型
2.在要异步执行的方法上加@Async