自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 收藏
  • 关注

原创 springBoot的文件上传功能

在文件上传的表单中红框中的属性就代表文件上传的表单。contrller层文件的代码: @PostMapping("/upload") public String upload(@RequestParam("email") String email, @RequestParam("username") String username, @RequestPart("headerImg".

2022-04-28 17:25:40 715

原创 springBoot的拦截器

拦截器代码:package com.atguigu.admin.interceptor;import lombok.extern.slf4j.Slf4j;import org.springframework.web.servlet.HandlerInterceptor;import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest;import javax.s

2022-04-28 17:20:00 244

原创 SpringBoot修改内容协商管理器(自定义消息类型转换器)

基于请求参数的内容协商策略只支持jaon,和xml两种形式的。【使用消息转换器的请求参数的形式进行内容协商的话他的请求头拥有固定的参数名称】在内容协商管理器中想要基于请求头的内容协商和基于请求路径的内容协商都起作用:@Beanpublic WebMvcConfigurer webMvcConfigurer() { return new WebMvcConfigurer() { //自定义内容协商的策略,这个不是增加是进行全面的替换 @Ove

2022-04-28 17:14:44 950

原创 springBoot自定义类型转换器

配置类中的代码://1、WebMvcConfigurer定制化SpringMVC的功能@Beanpublic WebMvcConfigurer webMvcConfigurer(){ return new WebMvcConfigurer() { //自定义类型转换器 @Override public void addFormatters(FormatterRegistry registry) { registry.addConve

2022-04-28 17:02:16 1190

原创 springBoot Rest风格的支持

Rest风格的支持:@xxxMapping; Rest风格支持(使用HTTP请求方式动词来表示对资源的操作) 以前:/getUser 获取用户 /deleteUser 删除用户 /editUser 修改用户 /saveUser 保存用户 现在: /user GET-获取用户 DELETE-删除用户 PUT-修改用户 POST-保存用户 核心Filter;HiddenHttpMethodFilter 用法: 表单method=post,隐藏域 _method=put ...

2022-04-28 16:46:25 253

原创 springBoot的配置文件

yaml类型的配置文件,适合做以数据为核心的配置文件。基本语法:key: value;kv之间有空格 大小写敏感 使用缩进表示层级关系 缩进不允许使用tab,只允许空格 缩进的空格数不重要,只要相同层级的元素左对齐即可 '#'表示注释 字符串无需加引号,如果要加,''与""表示字符串内容 会被 转义/不转义代码示例:实体类的代码:用于和配置文件中进行数据绑定。@Datapublic class Person { private String userName

2022-04-28 16:17:33 246

原创 SpringBoot的按需配置

以文件上传解析器为例:@Bean@ConditionalOnBean(MultipartResolver.class) //容器中有这个类型组件@ConditionalOnMissingBean(name = DispatcherServlet.MULTIPART_RESOLVER_BEAN_NAME) //容器中没有这个名字 multipartResolver 的组件public MultipartResolver multipartResolver(MultipartResolver re

2022-04-28 16:04:56 308

原创 SpringBoot中SpringMvc的底层原理:

底层原理调用流程图:流程图的地址

2022-04-28 15:52:05 107

原创 springBoot的自动配置原理

自动加载的的入口是从主启动类上面的注解。@ComponentScan(注解的作用就是一个包扫描的注解,默认扫描的路径就是主启动类及其子类。可以在@SpringApplication注解中的scanBasePackages属性来设置包扫描的位置参数是两个自定义的扫描器。@AutoConfigurationPackage是自动配置包的注解他也是一个组合注解底层就是:@Target({ElementType.TYPE})@Retention(RetentionPolicy.RU.

2022-04-28 15:47:29 573

原创 springBoot的常用注解

@Configuration注解这个注解的作用就是表明这个类就是配置类。【配置类默认是单例的,其中的组件默认也是单例的】代码示例:@Configuration(proxyBeanMethods = true)//表示这是一个配置类===配置文件@Scope("prototype")public class Config01 { /** * proxyBeanMethods = tru 表明是代理Bean * 那么不管是调用多少次save()方法都会从容器中进

2022-04-28 15:42:32 278

原创 SpringBoot的特点

SpringBoot主要有两个特点:1、依赖管理2、自动配置依赖管理:依赖管理的特点:父项目做依赖管理。 开发过程中导入stater场景启动器。 无需关注版本号可以开启版本的自动仲裁。 可以修改版本号。父项目做依赖管理:springBoot项目中的pom配置文件中的代码:<parent> <artifactId>spring-boot-starter-parent</artifactId> .

2022-04-27 22:25:31 2114

原创 Mybatis的注解开发

Mybatis的注解介绍:上述注解在Mapper接口中的使用示例:虽然是使用了注解的开发但是还是需要在主配置文件中进行加载映射文件的地址【也就是Mapper接口的地址】注解的多表开发:对应多表开发注解的详细介绍:使用注解完成一对一开发:Mapper接口方法上面的注解,实体类和xml的开发一样。第二种方式:就相当于嵌套查询。注解的一对多开发:注解的多对多开发:...

2022-04-16 11:41:21 73

原创 Mybatis的多表操作

表和表的关系有: 一对一的关系 一对多的关系 多对多的关系多表操作一对一关系的操作:属性绑定: <resultMap id="****" type="实体类的权限类名"><!-- 需要手动指定字段与实体属性的映射关系 <id> 标签代表主键 <result>表示是普通的属性--> <id column="数据表的字段名称" property="实体.

2022-04-16 11:29:42 303

原创 Mybatis使用第三方插件进行分页

使用第三方插件简化分页操作的步骤:导入坐标pagehelper、jsqlparser。 在Mybatis核心配置文件配置PageHelper插件。 测试分页的数据代码实现:导入坐标:--数据库操作中的分页插件--> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId..

2022-04-16 10:20:46 315

原创 Mybatis中的类型转换器

无论是mybati是向数据库中存储数据还是将数据读取出来都需要涉及类型转换器。Mybatis再带的类型转换器:【部分】 自定义类型处理器自定义类型转换器的解决方案: 重写已经有的类型转换器。 新建类型转换器。你可以重写类型处理器或者是新建类型转换器,处理不支持或非标准的类型,具体的实现方法是:实现TypeHandler接口,或者是继承BaseTypeHandler,然后我们可以有选择的将它映射到JDBC的类型。自定义类型转换器的步骤:创建类型...

2022-04-16 09:33:26 2316

原创 Mybatis的动态SQL的搭建

动态SQL的官方介绍:动态 SQL 是 MyBatis 的强大特性之一。如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQL 语句有多痛苦,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL,可以彻底摆脱这种痛苦。使用动态 SQL 并非一件易事,但借助可用于任何 SQL 映射语句中的强大的动态 SQL 语言,MyBatis 显著地提升了这一特性的易用性。如果你之前用过 JSTL 或任何基于类 XML 语言的文本处理器,你对动态 SQL

2022-04-16 09:07:46 357

原创 Mybatis通过接口的代理方式实现Dao层

Mybatis通过接口的代理方式实现Dao层 使用这种方式只需要我们编写Mapper接口,由mybatis框架来进行创建对应的实现类【原理是使用动态代理】接口代理方式的开发规范:Mapper.Xml文件中的namespace(映射文件中额命名空间)和Mapper接口的全限定名相同。 Mapper接口中的方法名和Mapper。Xml中定义的每个statement(sql操作的标签)的id相同。 Mapper接口中的方法的输入参数类型要和映射文件中定义的每个sql的parameterT...

2022-04-15 22:01:44 374

原创 Mybatis框架的基本开发

Mybatis框架的存在简化业务代码与数据库的交互,实现了对数据库的操作与业务逻辑的解耦,方便维护。Mybatis的开发步骤:添加Mbatis的坐标。 创建数据表。 创建实体类。 编写映射文件。 编写核心文件。 编写测试类。使用Mybatis实现简单的开发:添加Mybatis坐标的代码:<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis&lt

2022-04-15 22:01:03 356

原创 spring的编程式事务控制

事务控制:一种是基于xml的事务控制。一种是基于配置的事务控制。声明式事务控制,是不侵入开发的组件。也就是解耦。声明式事务处理的作用声明式事务处理也就是体现了一种AOP的思想。事务传播行为:是在业务方法在调用业务方法的时候事务统一型的问题。使用xml的方式来进行事务管理。【太繁琐不太使用】其中平台事务管理器是根据自己是使用的jdbc模板还是其它的东西来进行选择设置事务的基本信息:对上面设置的配置:使用注解的方式来实现事务控制:主配置类:@Conf..

2022-04-15 20:24:41 1405

原创 springMVC的Aop

Aop是面向切面编程:是通过预编译方式和运行器动态代理实现程序功能的统一维护技术。Aop是oop的延续,是spring框架中的重要内容,是函数编程的一种衍生泛型,利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑部分之间的耦合度降低提高程序的可重用行,提高开发的效率。Aop的作用是:在程序运行期间,在不修改源码的情况下对方法进行功能性增强。优势:减少重复代码,提高开发效率,并且便于维护。Aop的底层实现:Aop的底层是使用Spring提供的动态代理技术实现的,在...

2022-04-15 17:18:24 1917

原创 SpringMVC的异常处理机制

springMVC的异常处理思路:springMVC处理异常处理机制的两种方式: 第一种:使用springMVC提供的简单异常处理器。 第二种:实现spring的异常处理的接口HandlerEXceptionResolver来自定义异常处理类。使用springMVC的简单异常处理器。配置简单异常处理器:<!--配置简单异常处理器--> <bean class="org.springframework.web.servlet.handler...

2022-04-15 11:12:26 377

原创 springMVC的拦截器

什么时拦截器springMVC的拦截器就相当于servlet开发中的过滤器Filter,用于对请求进行处理以及预处理。将拦截器按照一定的顺序链接成一条链这条链被称为拦截器链,在访问被拦截的方法或者是字段时,拦截器链中的拦截器就会按照之前定义的顺序进行执行,拦截器也是AOP思想的具体实现。拦截器与过滤器的区别:自定义拦截器的开发步骤:创建拦截器的实现类:实现接口HandlerInterceptor 在springMVC配置文件中进行配置拦截器。 测试拦截器的拦截效果。创建拦截.

2022-04-15 10:37:40 648

原创 使用jdbc模板来操作数据库

使用jdbcTemplate,开发的步骤:导入spring-jdbc和spring-tx的坐标。 创建数据库表和实体。 创建jdbcTemplate对象。 使用jdbcTemplate对象执行jdbc的操作代码示例:导入坐标:<dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> &lt..

2022-04-15 09:35:49 276

原创 springMVC的文件上传

文件上传的三要素:【表单三要素】表单项: type:=“file”。 表单的提交方式:post。 表单的encype属性是多部份表单的形式,entype=”multipart/form-data”。代码示例:文件上传的原理:单文件上传:单文件上传的步骤:导入文件上传的相关坐标。 在springMVC配置文件中进行配置文件上传解析器。 编写文件上传的代码。导入文件上传的相关坐标:<!-- 文件上传的坐标--> <de..

2022-04-15 08:54:50 554

原创 springMVC静态资源访问权限的开启

通过请求访问获取不到静态资源的原因是:受springMVC前端控制器的影响。所有客户端的访问,都会经过前端控制器,而前端控制器内部会进行虚拟路径匹配,如果访问静态资源的话就会报错。【具体原因我也不知道】在spring-web.xml中进行配置静态资源的访问权限。第一种形式:!-- 静态资源访问权限的问题--><!-- 是开放这个静态资源的权限 设置了这个东西 js文件夹里面的静态资源资源就可以被访问 jsp 文件时动态资源 html文件是静态资源-->

2022-04-15 08:05:17 748

原创 springMVC获取请求参数

可以获取请求的参数:基本类型的参数。 pojo类型的参数。 数组类型的参数。 集合类型的参数。获取基本类型的参数:Controller中业务方法的参数名称只要请求参数的名称一致,参数就会映射匹配。请求地址:示例代码:@GetMapping("/save13")@ResponseBodyprivate String jkk1(String name,int age){ //普通数据类型的转换 //要在spring-mvc中进行处理中文乱码的问题..

2022-04-14 21:21:05 552

原创 SpringMVC的数据响应

springMVC的数据响应有两种响应形式:页面跳转: 直接返回字符串进行跳转 通过ModeAndView对象进行跳转回写数据: 直接返回字符串 返回对象或者是集合,json字符串使用ModeAndView来进行页面跳转: ModeAndView对象的意思是模型和视图,可以通过这个对象来设置模型数据以及返回视图的设置。代码: public ModelAndView sa...

2022-04-14 17:18:46 398

原创 视图解析 以及 请求转发请求重定向关键字介绍

返回视图时进行请求转发或者请求重定向部分源码:通过源码可以看出在controller层中在return “****”返回视图的时候可以进行在视图名前面加上“redirect:”就表明请求转发,加上“forward:”就表示请求重定向。【请求转发是默认的值】通过视图解析来实现对视图名的前缀和后缀来进行配置:spring-mvc.xml文件代码如下:<!--配置内部资源视图解析器--> <bean id="viewResolver" class="org.sp

2022-04-14 16:10:47 179

原创 springMVC的开发步骤及其基本环境的搭建和组件解析

springMVC概述:springMVC是一种基于Java的实现MVC的设计模式。springMVC的原理流程图【以及存在的意义】:springMVC的开发步骤:导入spring MVC的坐标。 配置springMVC的核心控制器DispathcerServlet。 创建Controller类中业务方法的映射地址。 配置spring-mvc.xml核心配置文件。 客户端发起请求测试。代码实现:导入坐标的代码: <dependency> <.

2022-04-14 15:59:32 197

原创 spring的相关API和getBean的使用

Applicationcontext的实现类【是用来加载配置文件的】应用上下文ClassPathXmlApplicationContext是从根路径下的加载配置文件【推荐使用】【可以直接书写配置文件的名称】FileSystemXmlApplicationContext是从磁盘路径上加载配置文件,配置文件可以在磁盘的任意位置【就不能直接书写配置文件的名称了,要写配置文件磁盘路径()】AnnotationConfigApplicationContext使用注解配置容器对象时,需要使用此.

2022-04-14 15:32:30 243

原创 spring的注解开发

为什么要有注解:spring轻代码重配置,就导致了配置繁重,影响开发的效率,注解开发代替xml的配置文件,可以简化配置。spring的原始注解:spring原始注解主要是代替 < Bean>标签的配置。使用上面的注解来进行实现一个简单的基于注解的开发:dao层代码:@Repository("userDao")public class UserDaoImpl implements UserDao { @Override public void sa.

2022-04-14 15:02:46 1630

原创 使用spring创建数据源

使用spring创建数据源 就是为了简化数据源的开发专注于业务逻辑的开发。数据源的使用特点:数据源就是为了提高程序的性能而出现的。 事先实例化数据源,初始化部分链接数据源。 在使用链接资源的时候从数据源来获取。 使用完毕后将链接资源归还给数据源。常见的数据源的都有:DBCP、C3P0、BoneCP、Druid等不是使用spring来创建数据源:使用数据源开发的步骤:导入数据源的坐标以及数据库的驱动。 创建数据源的对象。 设置数据源基本连接数据【配置数据源】。 使..

2022-04-14 14:11:22 1076

原创 spring 的依赖注入

依赖注入是什么依赖注入是spring框架的核心IOC的具体实现。在编写程序的时候,通过控制反转,把对象的创建交给了spring,但是代码中不可能出现没有依赖的情况IOC解耦只是降低他们的依赖关系,但不消除。这其中的依赖的关系,在使用spring的依赖注入后就交给spring来维护依赖注入的两种方式: 使用set方法 使用有参构造器依赖注入注入对象:需要注入接口类的代码:public...

2022-04-14 10:54:18 270

原创 在spring容器中实例化Bean

Bean的实例化是什么?Bean的实例化就是指使用spring容器创建对象的过程。Bean实例化的三种方式:第一种:使用无参构造器进行实例化。【默认的,最常用的】代码:<bean id="userDao" class="com.itheima.zhujie.dao.impl.UserDaoImpl"></bean>第二种:工厂静态实例化代码:静态工厂:public class FactoyStatic { public static

2022-04-14 09:32:42 178

原创 spring配置文件中的Bean标签的配置

bean标签的作用:配置的对象由spring创建,spring创建的原理是通过反射来创建的,反射默认调用的是默认的无参构造器,默认情况下调用Bean类中的无参构造器,如果没有的话会报错。Bean标签的基本使用<bean id="userDao" class="com.itguigu.dao.impl.UserDaoImpl"> </bean>Bean标签中属性的介绍:id属性:唯一标识,在获取这个Bean对应的类的对象时可能需要用到。 class属性:Bean

2022-04-14 09:05:45 551

原创 JavaWeb中的Fiter过滤器

filter过滤器是Java EE的规范,作用是:拦截请求,过滤响应。拦截请求的常见场景:权限检查。 日志操作。 事务管理。 等等创建过滤器的步骤第一步:创建过滤器的实现类实现javax.servlet.Filter接口。第二步:重写dofiter()方法,在方法内部进行过滤后的操作。第三步:在web.xml中配置过滤器,包含过滤的路径。Filter的生命周期:构造器方法(在工程启动的时候进行执行) Init初始化方法(在工程启动的时候进行执行) doFilte

2022-04-03 17:41:14 548

原创 JavaWeb中的Session会话

Session是JavaWeb的一种约束是一个接口,session就是会话,是用来维护一个客户端和服务器之间进行关联的技术。每个客户端都有自己的一个session会话。【在打开浏览器打开一个网站之后,知道关闭浏览器。这期间就叫做会话】如何创建Session和获取session:创建session:使用方法request.getSession();获取session:使用方法request.getSession();方法。【第一次调用request.getSession();方法的时候是

2022-04-03 16:27:02 1839

原创 JavaWeb 中的cookie

什么是cookie: cookie是一种会话跟踪技术,就是在一次会话中跟踪记录一些状态,【会话就是从浏览器打开i网站到访问它的其它网页知道浏览器关闭的这个过程】。cookie就可以在一次会话从开始到结束的整个过程,全程跟踪记录客户端的状态(例如:是否登录、购物车信息、是否已下载、是否 已点赞、视频播放进度等等)。cookie是服务器存储在客户端本地的一个文件. 它就好比服务器发给客户端的一个身份标识, 有了这个身份牌, 只要客户端随身携带这个身份牌. 服务器就能识别我们的身份了。cookie的..

2022-04-03 15:36:41 2774 1

原创 JavaWeb文件下载与文件的上传

文件下载的概述:代码示例:(下载问价) @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String zm="zm.jpg"; String mimeType = getServletContext().getMimeType("/a/" + zm)

2022-04-03 11:45:20 83

原创 JavaWeb中Liener监听器

Lienerj监控器的主要功能:Linter监听器的功能: 可以统计在线人数。 加载初始化的信息。 统计网站的访问量。 监控访问信息。Linter监听器的框架图:ServletRequestListenera监听器示例:/** * 监控总共的访问量 * * **/public class ServletListenerImpl2 implements ServletRequestListener { private int math=

2022-04-03 10:20:47 264

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除