@Repository 容器
/*
* 通过注解将当前类交个IOC容器管理之后,默认在IOC容器中对象的id是类名的首字母小写,
* 我们可以通过注解的value属性来指定该id,而且value属性名可以省略不写
*/
@Service
@Autowired 自动装配
/*
* 自动装配的规则:
* 1.根据属性类型实现自动装配
* 2.如果根据类型无法实现自动装配,会以属性名作为id从IOC容器中寻找以实现自动装配
* 3.如果通过1和2都不能实现自动装配,可以通过@Qualifier注解的vlaue属性来指定id以实现自动装配
*/
@Autowired(required=false)
/*
* 添加了@Autowired注解的属性默认必须注入成功,否则会抛出异常,我们可以通过设置该
* 注解的required属性的值为false来告诉Spring当前属性可以不装配
*/
@Qualifier("...")
/*
*可指定某个类型的注解
*/
@Controller 控制器
/*
*控制器,放在类前
*/
@RestController 控制器
/*
*@RestController = @Controller + @ResponseBody
*使用注解后,@Controller和@RequestBody失效
*/
@RequestMapping("/...") 映射
@RequestMapping(value= {"/...","/..."})
@RequestMapping(value="/...",method=RequestMethod.GET)
/*
* @RequestMapping注解中的属性:
* 1.value:用来设置要映射的请求地址,值的类型是String类型的数组
* 如果只映射一个请求地址,那么vlaue的值不需要添加大括号{},value属性名可以省略不写
* 2.method:用来设置要映射的请求方式
*如果没有设置该属性,那么只看映射的请求地址,不管请求方式
*/
@RequestParam 请求注解
/*
* @RequestParam注解:
* 用来映射请求参数
* 如果Handler的方法的入参中的参数名与请求参数的参数名一致,那么该注解可以省略不写(不建议)
* 该注解的属性:
* 1.value
* 设置请求参数的参数名
* 2.required
* 设置该请求参数是否是必须的,默认是true
* 3.defaultValue
* 设置请求参数的默认值,如果没有传入该请求参数将使用该值
*/
@RequestMapping("/testRP")
public String testparam(@RequestParam(value="username")String username,
@RequestParam(value="age",required=false,defaultValue="0")Integer age) {
return "success";
}
SpringMVC 的 Handler 方法可以接受哪些 ServletAPI 类型的参数
★HttpServletRequest
★HttpServletResponse
★HttpSession
public String testServletAPI(HttpServletRequest request , HttpServletResponse response) {
//获取请求参数
String username = request.getParameter("username");
System.out.println(username);
return "success";
}
<!-- 配置解决POST请求中文乱码问题的过滤器CharacterEncodingFilter -->
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
@ComponentScan 扫描
@ComponentScan(basePackages="com.atguigu.springboot")
/*
*用来设置自动扫描的包,如果没有指定basePackages属性,默认扫描当前类所在的包及其子包
*/