SpringMVC:
最传统的Servlet进行封装
- 配置
- 方法的说明
- 返回值 参数 请求方法
核心注解 (主要针对Controller层)
@RequetMapper
作用
将请求的地址映射到相应的方法
能修饰方法和类
属性 | 说明 | |
---|---|---|
value/paht | 映射的url路径 | |
method | 声明请求方法,枚举支持八大请求方式 | |
params | 请求的参数中必须符合条件 (如指定存在id 或id>=1) | |
consumes | 只处理指定的类型(ContextType)类容 | |
produces | 必须包含指定类型 | |
headers |
扩展注解
指定响应的方法,属于RequetMapper的子类
@GetMapper
@PostMapper
@PutMapper
@Delect Mapper
基本类型
直接声明
简单对象
直接声明
复杂类型
建议使用json格式上传
参数注解:
1、@RequestParam 注解
- 属性 required 默认为true 表示必传参数
- value=“别名” 当客户端的参数跟方法的参数不一致的时候可以使用
- defaultValue=1 在未赋值的情况下 默认值
/**
* RequestParam
* 属性 required 默认为true 表示必传参数
* value="别名" 当客户端的参数跟方法的参数不一致的时候可以使用
* defaultValue=1 在未赋值的情况下 默认值
* @return
*/
@PostMapping
@ResponseBody
public String test2(@RequestParam(value = "username",required = true) String name,
@RequestParam(required = false,defaultValue = "1") int age,
@RequestParam(defaultValue = "12")int size){
System.out.println(name);
System.out.println(age);
return "RequestParam 默认值 别名 ";
}
2、@RequestBody
主要是用于接收客户端传送的json数据自动解析
requried 是否是必要参数
导入第三方的json 以及相关配置信息
3、@PathVriable
rest风格的动态路径
value指定动态路径名称
requried 是否是必要的参数 默认true
其他
4、@RestController
返回json格式的数据 等价于 Contrller + RequestBody
配置信息
spring 配置
- 开启spring 注解支持
xmlns:context="http://www.springframework.org/schema/context"
<context:component-scan base-package="com.ssm"/>
spring-mvc配置
- 开启spring-mvc的注解支持
- json转化器配置 fastjson jackson
<!-- 1 配置 开启springmvc注解 扫描 -->
<context:component-scan base-package="com.ssm.controller"/>
<!-- 不来拦截静态文件-->
<mvc:default-servlet-handler/>
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
spring-mybatis:
- 注入sql sessionFactory
- 配置连接池
- 扫描所有mapper文件
- 配置mapper.xml(可选)
- 扫描mapper接口
<!-- 1.1 注入 sql SessionFactory-->
<bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 1.2 配置连接池 -->
<property name="dataSource" ref="dataSource" />
<!-- 扫描注册所有的mapper 文件 **表示扫描多级目录 -->
<property name="mapperLocations" value="classpath:mapper/**/*.xml" />
<!-- 1.3 配置mapper.xml 持久化对象别名 -->
<property name="typeAliasesPackage" value="com.ssm.entity"/>
<!-- 1.4 配置mybatis 核心配置文件 (可选) -->
<!-- <property name="configLocation" value="classpath:mybatis-config.xml"/>-->
</bean>
<!-- 扫描所有的mapper 接口文件 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- 扫描mapper 包名的接口 -->
<property name="basePackage" value="com.ssm.mapper"/>
<!-- 关联 sqlSessionFactoryBeanName -->
<!-- 与注入 sql SessionFactory 的id 和value 必须一致 必须一致 必须一致 -->
<property name="sqlSessionFactoryBeanName" value="sessionFactory"/>
</bean>
web.xml 配置
- 注册监听器
- 配置初始化参数加载 spring
- 配置Spring mvc DispatcherServlet
- 初始化spring-mvc 配置文件
<!-- 1 spring配置监听-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- 2 加载Spring 配置文件 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-*.xml</param-value>
</context-param>
<!-- <mvc:default-servlet-handler/>-->
<!-- spring-mvc 注册配置-->
<!-- 配置DispatcherServlet-->
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 初始化mvc文件-->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-mvc.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>