![](https://img-blog.csdnimg.cn/8225c9256d1247b5a755599bb32a4bb4.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Spring Framework
文章平均质量分 55
学习Spring和SpringMVC时写的笔记
龙哥每天都要学
即便知道自己很菜,但只要努力就会有所收获。
展开
-
Spring学习之事务控制
一、Spring提供的两种事务控制编程式事务控制:需要自己使用Java的API去写代码声明式事务控制:只需要配置就可以了先学编程式事务控制了解原理,之后在使用声明式事务控制时就知道那些参数到底应该如何配置了编程式事务控制三大对象:PlatformTransactionManagerTransactionDefinitionTrasactionStatusSpring的声明式事务控制,就是在配置文件中采用声明的方式来进行事务控制,它的底层其实就是AOP二、基于xml的事务控制配置事原创 2022-01-09 19:20:48 · 104 阅读 · 0 评论 -
Spring学习之AOP(面向切面编程)
一、AOP简介1.什么是AOPAOP是Aspect Oriented Programming的缩写,是面向切面编程的意思,是通过预编译方式和运行期动态代理实现程序功能统一维护的一种方式。动态代理:在不修改目标方法代码的基础上对目标方法的功能进行增强,可以实现程序功能的松耦合。2.AOP的作用和动态代理一样,在程序运行期间,可以在不修改源码的情况下对方法的功能进行增强只是使用AOP就不用自己去手写动态代理,Spring已经帮我们封装好了,我们只需要去配置就可以使用,实现功能和增强和松耦合。使原创 2022-01-09 12:56:57 · 337 阅读 · 0 评论 -
Spring学习之AOP的切点表达式详解
1.背景知识在Sping中使用AOP的主要工作是配置织入关系,使用<aop:config>标签代表这一段是织入关系的配置首先,用<aop:aspect>标签声明一个切面,这里要引用我们之前编写好的切面类极其在配置文件中注册的id(myAspect)然后,通过<aop:[aopMethod]>标签对各种类型的增强进行配置,前置增强用before,后置增强用after切面=增强+切点,所以在对应的增强类型中我们还要指定具体的增强方法和切点,配置切点就需要切点表达式&原创 2022-01-09 10:13:12 · 2893 阅读 · 1 评论 -
SpringMVC的异常处理
一、SpringMVC异常处理的思路系统的Dao、Service、Controller层的异常都通过throws Exception向上抛出,最后由SpringMVC前端控制器交给异常处理器进行处理。SpringMVC的异常处理主要有两种方式:使用SpringMVC提供的简单异常处理器SimpleMappingExceptionResolver实现SpringMVC的异常处理结构HandlerExceptionResolver自定义一个异常处理器二、简单异常处理器SimpleMappingE原创 2022-01-08 18:53:50 · 146 阅读 · 0 评论 -
SpringMVC学习之拦截器(interceptor)
1.SpringMVC拦截器的作用SpringMVC的拦截器类似于Servlet的Filter,用于对处理器进行预处理和后处理。将多个拦截器结成的一条链叫拦截器链(Interceptor Chain),当访问被拦截的方法或字段时,拦截器链上的拦截器就会被顺序调用,拦截器也是AOP思想的具体实现对所有资源进行拦截:xml <mvc:mapping path="/**"/>排除不需要拦截的资源:xml <mvc:exclude-mapping path=""/>拦截器的开原创 2022-01-08 13:53:33 · 135 阅读 · 0 评论 -
SpringMVC项目通用配置教程
背景:众所周知,SpringMVC项目的配置过程十分的繁琐,所以我把常见的、通用的配置步骤记录在这里:一、在pom.xml中导入SpringMVC项目的相关坐标必须导入的坐标有,spring-context, spring-web, spring-webmvc,且版本号需要保持一致二、在resources中添加spring-mvc.xml配置文件并进行通用配置需要注意以下配置有些可能要引入命名空间,这个在文件头部复制粘贴那些链接并修改就可以了1.配置mvc的注解驱动:<mvc:annota原创 2022-01-08 11:10:51 · 801 阅读 · 0 评论 -
MVC三层架构与SpringMVC
个人感觉MVC三层应该改名为MCV三层架构毕竟这样才更符合底层到顶层的逻辑顺序Model 模型数据持久化层:CRUD (Dao) 只完成增删改查业务处理:业务逻辑 (service)Controller 控制器 (Servlet)接受用户的请求 (req参数、Session信息)控制视图的跳转 (请求转发、重定向)View 视图展示数据提供连接发起Servlet请求:<a, <form, <img...原创 2022-01-02 23:39:59 · 544 阅读 · 0 评论 -
Spring学习之JdbcTemplate的基本使用
1.JdbcTemplate概述JdbcTemplate是Spring提供的一个对象,是对原始繁琐的JDBC API对象的简单封装。Spring框架为我们提供了很多的操作类,常用的就是操作关系型数据的JdbcTemplate2.JdcbTemplate开发步骤(一)导入spring-jdbc和spring-tx的坐标spring-tx的tx其实是transactions,为了支持事务操作而导入的(二)创建数据库表和实体1.需要在数据库中建立数据库、数据表CREATE DATABASE Jd原创 2022-01-07 14:28:50 · 443 阅读 · 0 评论 -
SpringMVC学习之文件上传
1.文件上传客户端的三要素1.表单项type=“file”2.表单的提交方式是post3.表单的enctype属性是multipart/form-data <form action="${pageContext.request.contextPath}/user/get10" method="post" enctype="multipart/form-data"> 名称:<input type="text" name="username"> <br/原创 2022-01-07 09:27:45 · 74 阅读 · 0 评论 -
SpringMVC学习之获得请求头信息
1.@ResquestHeader注解@RequestHeader注解用在方法参数前面,可以获得值为value的请求头内的信息:@RequestMapping("/get8")@ResponseBody // 表示不进行页面跳转public void getParams8(@RequestHeader(value = "User-Agent", required = false) String userAgent){ System.out.println(userAgent);}2.@原创 2022-01-07 08:09:24 · 164 阅读 · 0 评论 -
SpringMVC学习之自定义类型转换器
1.问什么需要自定义类型转换器通过JavaWeb的学习,我们知道从客户端发送的请求中参数都是以字符串的形式提交的但有时我们需要的参数类型不是字符串,而是整数之类字符串转整数的转换器不用我们自己来实现,SpringMVC已经帮我们继承好了例如需要一个int类型的age参数,即使我们传入了18这个字符串,他会自动转换成int但是还有一些类型,比如日期,SpringMVC是没有为我们提供类型转化器的,所以需要自定义类型转换器:2.自定义类型转换器的开发流程(一)定义转换类实现Converter接口原创 2022-01-07 00:44:24 · 399 阅读 · 0 评论 -
SpringMVC学习之获取Restful风格的参数
1.Restful风格简介Restful风格的请求是使用"url+请求方式"表示一次请求方式的,有四个表示操作方式的动词:GET: 用于获取资源POST: 用于新建资源PUT: 用于更新资源DELETE: 用于删除资源例如:/user/1 GET 获得 id=1 的user/user/1 DELETE 删除 id=1 的user/user/1 PUT 更新 id=1 的user/user POST 新增user2.Restful风格请求和原创 2022-01-07 00:13:00 · 1198 阅读 · 0 评论 -
SpringMVC学习之参数绑定的注解@requestParam
1.@RequestParam()注解的作用和使用方法前面在获取请求参数的时候说过,Controller方法中的参数名必须跟提交的参数name是一致的,如果name不一致,那么就会获取失败,这时就需要使用@RequestParam()进行参数绑定2.@RequestParam()注解的第一个参数valuevalue指定客户端提交的请求的参数的名称: @RequestMapping("/get6") @ResponseBody // 表示不进行页面跳转 public void get原创 2022-01-06 23:21:51 · 501 阅读 · 0 评论 -
SpringMVC学习之配置全局乱码过滤器
在我们项目的form.jsp页面中,表单是通过post方式提交的,这导致服务器接收后显示了中文乱码要解决post提交得到的数据中文乱码的问题,只需要把以下代码粘贴到web.xml中即可:<!--配置解决全局乱码的过滤器--> <filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-class>org.springframework.web.fil原创 2022-01-06 22:11:48 · 163 阅读 · 0 评论 -
SpringMVC学习之静态资源访问的开启
1.问题的引入为什么上节课在我们代码中,访问Ajax.jsp之后去找js文件夹下的jquery-3.3.1.js会报404呢?因为我们在配置SpringMVC的DispatcherServlet的时候,url设置的是缺省的:/也就是说,每个请求都会被DispatcherServlet当作我们写好的Controller方法的请求还有它绑定的@RequestMapping()然后它发现没有任何一个@RequestMapping里面写的请求能和这个匹配起来,所以它就什么都不做了。2.第一种解决方法在s原创 2022-01-06 21:42:56 · 726 阅读 · 0 评论 -
SpringMVC学习之获得请求参数
1.获得基本类型参数Controller中的业务方法的参数名要与请求参数的name一致,参数值会自动映射匹配 @RequestMapping("/get") @ResponseBody // 表示不进行页面跳转 public void getParams(String username, int age){ System.out.println(username); System.out.println(age); }2.获得POJO类型参数原创 2022-01-06 21:19:00 · 506 阅读 · 0 评论 -
SpringMVC学习之数据响应:页面跳转和数据回写
SpringMVC主要有两种数据响应方式:页面跳转和数据回写页面跳转:故名思意就是使请求方的页面进行跳转,有请求转发和重定向的方式数据回写:类似JavaWeb学的resp.getWriter().print(),往页面中写入一些数据一、页面跳转页面跳转又分为两种方式:返回字符串的形式和返回ModelAndView的形式1. 返回字符串的形式: @RequestMapping(value = "/success") public String success(){ retur原创 2022-01-06 17:39:40 · 1075 阅读 · 0 评论 -
SpringMVC学习之SpringMVC开发步骤
1.导入spring-webmvc坐标在项目的pom.xml文件中添加spring-webmvc坐标就可以了2.配置SpringMVC的前端控制器:DispatcherServlet和普通的servlet一样,需要在web.xml中注册servlet并添加请求映射:<servlet> <servlet-name>DispatcherServlet</servlet-name> <servlet-class>org.springframe原创 2022-01-06 12:00:37 · 250 阅读 · 0 评论 -
Spring集成web环境
一、ContextLoaderListener的工作原理在Spring项目中,用频繁用到Spring容器,也就是ApplicationContext对象,代码如下:ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");所以我们干脆把Spring容器放到全局唯一的servletContext对象中去,写一个ContextLoaderListener实现ServletContextLi原创 2022-01-06 08:31:46 · 78 阅读 · 0 评论 -
Spring集成Junit的方法
0.为什么要在Spring中进行单元测试?如果没有单元测试,我们测试代码时不仅必须要写在main方法而且每次都要去写代码获取ApplicationContext对象并用getBean()方法拿到其他对象而使用单元测试就可以随时随地测代码,只需要加上相应的注解并直接在那注入对象即可1. 导入spring-test坐标除了创建Spring项目必须导入的spring-context坐标外还要导入spring-test坐标极其依赖的junit坐标注意spring-context坐标和spring-te原创 2022-01-05 19:47:19 · 452 阅读 · 0 评论 -
Spring学习笔记之注解开发(二):Spring的注解开发流程
1.编写核心配置类:SpringConfiguration建立config包并写一个SpringConfiguration类,然后用@Configuration注解标注其为Spring的核心配置类需要把之前加载xml配置的代码换成加载这个核心配置类的代码:// 通过xml文件加载配置的代码:ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");// 通过SpringConfigu原创 2022-01-05 18:55:38 · 141 阅读 · 0 评论 -
Spring学习笔记之注解开发(一):Spring的注解介绍
Spring原始注解四种创建Bean的注解:@Component(id) 用在任意类上,创建Bean对象@Comtroller(id) 用在web层类上,创建Bean对象@Service(id) 用在service层类上,创建Bean对象@Repository(id) 用在dao层类上,创建Bean对象注入引用属性的注解:@Autowired 用在属性名上,根据类型依赖注入@Qualifier(name) 结合@Autowired,根据id注入@Resource(name) = @Auto原创 2022-01-05 18:30:40 · 91 阅读 · 0 评论 -
Spring学习笔记之Spring-02-DataSource-xml(用xml配置数据源)
背景这是我学习黑马SSM教程P21-P27时记下的笔记,项目的地址在:https://github.com/RamboKingder/Spring_Learning这一节其实没啥太新的东西,就是数据源对象需要用set方法去设置:driver、url、username、password参数但是配置的方式分为很多种:一、平时最常用的方法就是在代码里面new DataSource对象,然后把字符串传给datasource的setXXX()方法,例如:DruidDataSource dataSource原创 2022-01-05 14:54:32 · 2947 阅读 · 0 评论 -
Spring学习笔记之Spring-01-Hello项目
背景:这是我学习黑马SSM教程P1-P20时写的代码和笔记,他的视频不自己记一记的话直接就忘了。。。我用到的Spring-01-Hello项目的Github地址:https://github.com/RamboKingder/Spring_Learning/tree/main一、创建一个简单的Spring项目的具体流程:1. 使用Maven-archetype-webapp模板创建一个简单的Spring项目用模板创建的项目需要两个优化:在main文件夹下添加java文件夹和resources文件夹原创 2022-01-05 11:51:16 · 53 阅读 · 0 评论