SSM
树图思维导图提供 SSM总结 在线思维导图免费制作,点击“编辑”按钮,可对 SSM总结 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:07ecc4ed7ad7c5dcc06534126ca69dcf
SSM思维导图模板大纲
IoC容器
bean的作用域
单实例singleton
多实例prototype
bean的生命周期
1.实例化
IoC容器会创建一个Bean的实例,并为其分配空间,可通过 构造方法 完成
2.依赖注入
实例化完成后,IoC容器会把属性值注入到Bean对象中
3.初始化
对Bean对象进行初始化操作
4.使用
开发者使用阶段
5.销毁
IoC容器关闭时会对所有的Bean进行销毁操作,释放资源
基于注解管理bean
必须掌握
@Component注解
添加在类上,标记为普通 Spring 组件
@Controller注解
添加在类上,控制器层 Spring 组件
@Service注解
添加在类上,业务逻辑层 Spring 组件
@Repository注解
添加在类上,数据访问层 Spring 组件
@Value注解
添加在属性、setter()方法上,依赖注入
@Qualifier注解
添加在属性上,配合@Autowired注解根据名称装配
@Configuration注解
添加在类上,标记为配置类,Spring会自动加载此类
@Autowired注解
添加在属性、构造方法、setter()方法上,自动装配,注入对象类型数据
需要了解
@Resource注解
添加在属性上,将对象类型依赖注入(装配)
@Scope注解
添加在类上,单实例singleton【默认】和多实例prototype
@PropertySource注解
添加在类上,引入外部属性文件
@ComponentScan注解
添加在类上,自动扫描Spring组件
@PostConstruct注解
添加在方法上,bean对象生命周期初始化方法注解
@PreDestroy注解
添加在方法上,bean对象生命周期销毁方法注解
基于注解管理
@Mapper注解
添加在接口上,由框架自动创建该接口的实现类,并定义数据访问逻辑
@MapperScan注解
指定包路径,设置自动扫描
@Select()注解
加在接口方法上,查询语句 - JDBC代码 - 操作数据库 - 封装返回值(对象或List<>)
@Delete()注解
加在接口方法上,删除语句 - JDBC代码 - 操作数据库 - 封装返回值int
@Update()注解
加在接口方法上,更新语句 - JDBC代码 - 操作数据库 - 封装返回值int
@Insert()注解
加在接口方法上,插入语句 - JDBC代码 - 操作数据库 - 封装返回值int
基于xml管理
<select>标签
resultMap属性:自定义映射集合,将数据库查询结果映射为任意Java对象或集合
<resultMap id="userMap" type="com.example.User"> <id property="id" column="user_id"/> <result property="name" column="user_name"/> <result property="age" column="user_age"/> </resultMap> <select id="findUserById" resultMap="userMap"> select user_id, user_name, user_age from user where id=#{id} </select>
<id>标签:主键字段
<result>标签:非主键字段
property属性:查询列名[别名]
column属性:数据表字段名
type属性:指定映射的Java对象
<insert>标签
在数据表中插入数据,返回值为受影响的数据条数
<update>标签
更新表数据,返回值为受影响的数据条数
<delete>标签
删除表数,返回值为受影响的数据条数
<set>标签、<foreach>标签、<if>标签
动态SQL【包括动态删除和动态修改】
动态删除
<delete id="deleteComment2"> DELETE FROM comment WHERE id IN ( <foreach collection="list" item="id" separator=","> #{id} </foreach> ) </delete>
collection属性:指定需要遍历的对象类型
item属性:需要赋值的变量名
separator属性:指定多个元素之间的分隔符
动态修改
<update id="updateComment2"> UPDATE comment <set> <if test="content!=null">content=#{content},</if> <if test="created!=null">created=#{created},</if> <if test="userId!=null">user_id=#{userId},</if> <if test="weiboId!=null">weibo_id=#{weiboId}</if> </set> WHERE id=#{id} </update>
<sql>标签、<include>标签
SQL语句重用,减少重复代码
@Controller注解
用于标识一个类为请求处理器。当请求到达 DispatcherServlet 时,Spring 会根据请求的 URL 路径和 @RequestMapping 注解去匹配相应的处理器(即被 @Controller 标记的类),并调用相应的方法进行请求处理
@RestController注解
复合注解,@Controller 和 @ResponseBody,既可以声明一个类为请求处理器,又可以将控制器方法的返回结果转为JSON格式数据返给客户端
@RequestMapping注解
处理请求的注解,可以将 URL 映射到指定的控制器类或处理器方法上,从而告诉 Spring MVC 如何处理来自客户端的请求
@RequestBody注解
处理请求体的注解,将请求体中数据解析为JAVA对象,通常用于接收客户端发送的 JSON 或 XML 格式的请求体数据,并将其转换为 Java 对象进行处理
@ResponseBody注解
将控制器方法的返回值转换为指定格式的响应体的注解,比如转为JSON格式
entity实体类
用于和数据库中的表字段一一对应
VO视图对象
用于处理服务器响应给客户端的数据
DTO数据传输对象
用于接收客户端传递给服务器的数据
@NotNull注解
不允许为空值NULL
@NotEmpty注解
不允许为空字符串,也不允许为空值NULL
@NotBlank注解
不允许为空白串,不允许为空字符串,也不允许为空值NULL
@Size注解
作用于字符串,限定字符串的长度范围
@Range注解
作用于整型,限制整型的取值范围
@Validated注解
验证注解,用于对参数进行合法性校验
常用注解
@ControllerAdvice注解
标识一个类为全局异常处理器类型,用于处理Controller中抛出的异常
@RestControllerAdvice注解
复合注解:@ControllerAdvice注解 + @ResponseBody注解,标识类为全局异常处理器类型,并允许异常处理方法以返回值的形式返回客户端数据
@ExceptionHandler注解
异常处理方法,用于捕获 Controller 层抛出的异常并进行处理
状态码类的定义(StatusCode)
@Getter @AllArgsConstructor @NoArgsConstructor public enum StatusCode { /**所有的实例都在最上面*/ SUCCESS(1, "OK"), NOT_LOGIN(1000,"未登录"), LOGIN_SUCCESS(1001,"登录成功"), PASSWORD_ERROR(1002, "密码错误"), USERNAME_ERROR(1003, "用户名错误"), USERNAME_ALREADY_EXISTS(1004, "用户名已存在"), OPERATION_SUCCESS(2001, "操作成功"), OPERATION_FAILED(2002, "操作失败"), VALIDATE_ERROR(3002, "参数校验失败"); private Integer code; private String msg; }
响应结果封装类的定义(JsonResult)
统一响应结果的返回,提高代码的可维护性和高扩展性
@Api注解
添加在控制器类上的注解,通过tags属性可以修改原本显示控制器类名称的位置的文本,一般加上标号会自动排序
@ApiOperation注解
添加在控制器类中处理请求的方法上的注解,用于配置此方法处理的请求在API文档中显示的文本
@ApiModelProperty注解
添加在POJO类的属性上的注解,用于对请求参数或响应结果中的某个属性进行说明
@ApiImplicitParam注解
添加在控制器类中处理请求的方法上的注解,一旦使用此注解,各个参数的数据类型默认都会显示String,可以通过dataType指定数据类型
@ApiImplicitParams注解
添加在控制器类中处理请求的方法上的注解,当方法有多个非封装的参数时,在方法上添加此注解,并在注解内部通过@ApiImplicitParam数组配置多个参数
/**微博详情页功能*/ @GetMapping("selectById") @ApiOperation(value = "微博详情功能") @ApiImplicitParams(value = { @ApiImplicitParam(name = "id", value = "微博", required=true, dataType = "int"), @ApiImplicitParam(name = "username", value = "用户名", required=true) }) public WeiboDetailVO selectById(int id, String username){ return weiboMapper.selectById(id); }
@ApiIgnore注解
添加在处理请求的方法的参数上,用于表示API文档框架应该忽略此参数
@Getter和@Setter注解
toString注解
@AllArgsConstructor注解
@NoArgsConstructor注解
@Data注解
自动生成 Getter() Setter() toString() 无参构造方法
@Slf4j注解
日志注解,用于调试程序
日志级别
TRACE
最低的日志级别,非常详细的日志信息,通常只在调试时使用
DEBUG
调试级别日志信息,输出有用的调试信息,可帮助诊断应用程序是否按预期工作
INFO
默认级别日志信息,有利于了解应用程序的进程,通常记录应用程序的启动和关闭以及重要事件
WARN
警告级别日志信息,表明某些事情不太对头,一些意外情况的发生或者不一定错误的危险状况,但仍可留待观察,不影响应用程序的正常运行
ERROR
错误级别日志信息,表明可能会导致应用程序无法运行的情况,需要查明并立即解决
URL定位资源
HTTP动词操作资源
GET请求:获取服务端资源
POST请求:服务端新增资源
DELETE请求:删除服务端资源
UPDATE请求:修改服务端资源
HTTP状态码表明结果
200状态码
表示请求成功处理并返回结果
404状态码
请求的资源不存在
500状态码
表示服务器内部错误
405状态码
客户端发送的请求方法与服务器的请求处理方法不匹配
常用注解
@GetMapping
仅接收并处理GET方式请求
@PostMapping
仅接收并处理POST方式请求
@PutMapping
仅接收并处理PUT方式请求
@DeleteMapping
仅接收并处理DELETE方式请求
@PathVariable
用于从URL地址中获取参数值,作为方法参数使用
@GetMapping("/users/{userId}") public User getUserById(@PathVariable int userId) { User user = userService.getUserById(userId); return user; }
树图思维导图提供 慈善组织年度总结颁奖晚会 在线思维导图免费制作,点击“编辑”按钮,可对 慈善组织年度总结颁奖晚会 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:189d072c8d20765fa500065c119a5d3a
树图思维导图提供 文心一言学习总结 在线思维导图免费制作,点击“编辑”按钮,可对 文心一言学习总结 进行在线思维导图编辑,本思维导图属于思维导图模板主题,文件编号是:cee3adc77ca2be302ee19ea4ded95d37