spring
文章平均质量分 60
llxxqq5
一个小白的记录
展开
-
SpringBoot单元测试、SpringBoot程序打包
SpringBoot单元测试需要的依赖:<!--test--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <!--新版本需要排除下面的干扰,但2.1.6版本.原创 2022-01-22 17:42:30 · 493 阅读 · 0 评论 -
SpringMVC 框架中的拦截器
拦截器的概述 SpringMVC框架中的拦截器用于对处理器进行预处理和后处理的技术。 可以定义拦截器链,连接器链就是将拦截器按着一定的顺序结成一条链,在访问被拦截的方法时,拦截器链中的拦截器会按着定义的顺序执行。 拦截器和过滤器的功能比较类似,有区别 过滤器是Servlet规范的一部分,任何框架都可以使用过滤器技术。 拦截器是SpringMVC框架独有的。 过滤器配置了/*,可以拦截任何资源。 拦截器只会对控制器中的方法进原创 2022-01-14 10:11:08 · 221 阅读 · 0 评论 -
SpringMVC的异常处理方式
异常处理思路:Controller调用service,service调用dao,异常都是向上抛出的,最终由DispatcherServlet找异常处理器进行异常的处理自定义异常处理器类:class ExceptionHandler implements HandlerExceptionResolver { @Override public ModelAndView resolveException(HttpServletRequest request,原创 2022-01-14 09:53:20 · 104 阅读 · 0 评论 -
远程文件上传
远程文件上传目的是为了多个项目之间共享文件资源:远程文件上传,是指多个项目每次将文件上传到其他项目上,这样来实现文件的统一管理,如上图,我们首先需要搭建一个资源项目,其他项目每次上传文件都上传到资源项目中。(2)工程创建springmvc-images,首先创建一个资源项目springmvc-images,该工程为一个普通web工程也要打war包,不需要导入任何包,也不需要有任何其他配置,只需要在webapp下创建一个uploads目录即可,为了防止uploads目录为空,需要往该目录中.原创 2022-01-14 09:00:13 · 507 阅读 · 0 评论 -
springMVC文件上传(两种方式)
先导入需要用到的依赖:<!--文件上传依赖包--><dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version></dependency><dependency> &..原创 2022-01-14 08:26:10 · 3179 阅读 · 0 评论 -
SpringMVC中json数据处理
JSON数据的转换需要依赖JSON转换包,所以我们需要先在工程中添加如下依赖包<!--用于JSON数据转换--><dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.9.6</version></depen...原创 2022-01-06 17:51:00 · 505 阅读 · 0 评论 -
SpringMVC中配置静态资源(webapp下的js或者css样式等)
(1)静态资源无法访问目录结构如下放置但此时无法直接访问静态资源,访问会出404错:(2)原因分析在web.xml中,SpringMVC的前端核心控制器拦截的请求是所有请求,当我们请求图片的时候或者请求js的时候,都会被SpringMVC核心前端控制器拦截,此时会根据请求的路径查找对应的控制器(找对应类的方法)来处理该请求,而项目中,不存在处理对应静态资源的控制器,所有也就报404错误了。(3)静态资源映射SpringMVC提供了静态资源映射处理配置,只需要在sp原创 2022-01-06 17:41:18 · 2093 阅读 · 0 评论 -
SpringMVC特有的重定向和转发
SpringMVC自身也提供了重定向和转发,不论是重定向还是转发,返回类型都为String,但返回的String都需要在前面加上特殊的重定向或者转发的英文字母字符↓重定向: return "redirect:http://www.baidu.com";转 发:return "forward:/WEB-INF/pages/user.jsp";@RequestMapping(value = "/rf") public String method(Model model) throws原创 2022-01-06 17:21:53 · 205 阅读 · 0 评论 -
SpringMVC中handeler返回值为void的情况 以及返回ModelAndView
返回void(1)返回页面如果返回值为void,此时会跳转到 prefix+uri+suffix 对应的页面,如下代码实现:如上图代码,此时返回为void,会跳转到/WEB-INF/pages/user/void.jsp页面,如果该页面不存在,会报404错误。(2)输出数据返回类型为void,可以结合ServletAPI直接给用户输出一些数据,如下代码:(3)重定向/转发返回类型为Void的时候,还可以利用ServletAPI实现重定向与转发,代码如下:im..原创 2022-01-06 17:19:05 · 591 阅读 · 0 评论 -
SpringMVC中Model的使用
SpringMVC会把Model(模型信息)中的的数据放入到request域对象中,页面可以通过EL表达式来取request域中的数据。我们可以先写一个案例,在后台使用Model的addAttribute方法,页面使用EL表达式取数据。创建ModelController@Controller@RequestMapping(value = "/model")public class ModelController { /** * Model的使用 * @param...原创 2022-01-04 19:33:49 · 1782 阅读 · 0 评论 -
SpringMVC 常用的注解
RequestParam注解(1)注解介绍作用:把请求中的指定名称的参数传递给控制器中的形参赋值 属性 value:请求参数中的名称 required:请求参数中是否必须提供此参数,默认值是true,必须提供 defaultValue:默认值(2)案例创建RequestParamController类,并在类中添加add方法,代码如下:@Controller@RequestMapping(value = "/annotat原创 2022-01-04 19:31:07 · 231 阅读 · 0 评论 -
SpringMVC 自定义类型转换器 (时间格式转换)
前后台时间格式不对,我们可以通过自定义类型转换器,要向自定义类型转换器,需要创建一个类实现Converter接口,并且需要注册该自定义类型转换器。(1)创建类型转换器创建自定义类型转换器,代码如下:package com.sen.util;import org.springframework.core.convert.converter.Converter;import java.text.SimpleDateFormat;import java.util.Date;public c原创 2022-01-02 22:31:17 · 518 阅读 · 0 评论 -
SpringMVC post请求乱码问题处理
在表单请求中,如果是前台发送中文,会出现乱码问题。Post请求字符编码过滤器针对POST请求乱码,SpringMVC提供了一个编码过滤器,该编码过滤器只针对POST请求有效,GET请求无效。我们来配置一个springmvc过滤器。凡是servlet,过滤器,监听器一般都在web.xml中配置Spring提供的过滤器类<!-- 配置过滤器,解决中文乱码的问题 --><filter> <filter-name>characterEncoding.原创 2022-01-02 22:24:40 · 841 阅读 · 0 评论 -
SpringMVC 中请求参数的绑定
请求参数的绑定说明绑定机制表单提交的数据都是k=v格式的 username=haha&password=123SpringMVC的参数绑定过程是把表单提交的请求参数,作为控制器中方法的参数进行绑定的要求:提交表单的name和参数的名称是相同的我们可以新建一个UserController,然后在UserController中添加相关测试方法。@Controller@RequestMapping(value = "/user")public class UserCont原创 2022-01-02 22:19:33 · 329 阅读 · 0 评论 -
SpringMVC中 RequestMapping注解 作用与介绍
源码:@Target({ElementType.METHOD, ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Mappingpublic @interface RequestMapping { String name() default ""; @AliasFor("path") String[] value() default {}; @AliasFor("value")原创 2022-01-02 17:31:44 · 871 阅读 · 0 评论 -
SpringMVC说明与入门案例
三层架构:1. 咱们开发服务器端程序,一般都基于两种形式,一种C/S架构程序,一种B/S架构程序2. 使用Java语言基本上都是开发B/S架构的程序,B/S架构又分成了三层架构3. 三层架构 a. 表现层:WEB层,用来和客户端进行数据交互的。表现层一般会采用MVC的设计模型 b. 业务层:处理公司具体的业务逻辑的 c. 持久层:用来操作数据库的MVC模型1. MVC全名是Model View Controller 模型视图控制器,每个部分各司其职。2. Model...原创 2022-01-02 17:20:16 · 245 阅读 · 0 评论 -
spring配置数据源(dataSource)的方法
通过配置文件:配置文件:driverClass=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/mydb1user=rootpassword=123其中用户名与密码要填写自己的在spring-config.xml XML文件中配置如下:<!-- 加载配置文件--><context:property-placeholder location="classpath:jdbc.properties原创 2021-12-30 15:25:32 · 4522 阅读 · 0 评论 -
spring框架利用xml配置文件配置事务的方法
背景:模拟银行转账,为确保安全性,一般都要使用事务:比如有转账的业务,其中有转账的方法,dao层略:public class AccountServiceImpl implements AccountService { private AccountDao accountDao; public void setAccountDao(AccountDao accountDao) { this.accountDao = accountDao; } @Ov原创 2021-12-30 15:19:18 · 547 阅读 · 0 评论 -
spring AOP
AOP:全称是Aspect Oriented Programming即:面向切面编程。简单的说它就是把我们程序重复的代码抽取出来,在需要执行的时候,使用动态代理的技术,在不修改源码的基础上,对我们的已有方法进行增强。AOP的作用及优势作用: 在程序运行期间,不修改源码对已有方法进行增强。优势: 减少重复代码 提高开发效率 维护方便AOP的实现方式 使用动态代理技术动态代理的特点字节码随用随创建,随用随加载。 它与静态代理的区别也在于此。因为静态代理是字节码一上来就创建好,.原创 2021-12-29 20:29:10 · 71 阅读 · 0 评论 -
spring使用注解(代替)xml配置文件完成配置
@ComponentScan 设置扫描的文件包,使得包含的注解能起作用@Component 把资源让spring来管理。相当于在xml中配置一个bean。 value:指定bean的id。如果不指定value属性,默认bean的id是当前类的类名。首字母小写@Controller 与@Component作用一致,但一般用于表现层的注解@Service 与@Component作用一致,但一般用于业务层的注解@Repository与@Com...原创 2021-12-28 20:34:28 · 811 阅读 · 0 评论 -
spring的依赖(DI)注入
依赖注入:Dependency Injection。它是spring框架核心ioc的具体实现。我们的程序在编写时,通过控制反转,把对象的创建交给了spring,但是代码中不可能出现没有依赖的情况。ioc解耦只是降低他们的依赖关系,但不会消除。例如:我们的业务层仍会调用持久层的方法。那这种业务层和持久层的依赖关系,在使用spring之后,就让spring来维护了。简单的说,就是坐等框架把持久层对象传入业务层,而不用我们自己去获取。构造函数注入顾名思义,就是使用类中的构造函数,给成员变量赋..原创 2021-12-27 20:41:09 · 310 阅读 · 0 评论 -
实例化Bean的三种方式
使用静态工厂类,告诉我使用哪个类的哪个静态方法工厂方法来创建bean对象<bean class="com.ze.factory.StaticFactory" factory-method="createObj" id="accountService"></bean>使用普通工厂类,告诉我使用哪个哪个工厂对象fbean的哪个非静态方法工厂方法来创建bean对象 <bean class="com.ze.factory.Factory" id="facto.原创 2021-12-27 20:25:34 · 955 阅读 · 0 评论 -
使用IOC(inversion of control)控制反转与依赖(DI)注入
创建Maven项目导入相关依赖 pom.xml的坐标信息:<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.0.2.RELEASE</version> </dependenc原创 2021-12-27 20:19:13 · 223 阅读 · 0 评论 -
IOC(inversion of control)控制反转的概念和作用
耦合与解耦耦合性(Coupling),也叫耦合度,是对模块间关联程度的度量。耦合的强弱取决于模块间接口的复杂性、调用模块的方式以及通过界面传送数据的多少。模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。模块间联系越多,其耦合性越强,同时表明其独立性越差( 降低耦合性,可以提高其独立性)。耦合性存在于各个领域,而非软件设计中独有的,但是我们只讨论软件工程中的耦合。在软件工程中,耦合指的就是就是对象之间的依赖性。对象之间的耦合越高,维护成本越高。因此对象的设计应使类和构件之间原创 2021-12-27 19:58:18 · 508 阅读 · 0 评论 -
spring的发展历程与spring的优势
spring概述:Spring 是分层的 Java SE/EE 应用 full-stack 轻量级开源框架,以 IoC(Inverse Of Control:反转控制)和 AOP(Aspect Oriented Programming:面向切面编程)为内核,提供了展现层 SpringMVC 和持久层 Spring JDBC 以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多著名的第三方框架和类库,逐渐成为使用最多的 Java EE 企业应用开源框架。spring的发展历程19.原创 2021-12-27 19:39:54 · 395 阅读 · 0 评论 -
Spring框架与架构组成
Spring解决原生web开发中存在的以下问题传统Web开发存在硬编码所造成的过度程序耦合(例如:Service中拥有Dao属性对象)。部分Java EE API较为复杂,使用效率低(例如:JDBC开发步骤)。侵入性强,移植性差(例如:DAO实现的更换,从Connection到SqlSession)。概念Spring是一个项目管理框架,同时也是一套Java EE解决方案。Spring是众多优秀设计模式的组合(工厂、单例、代理、适配器、包装器、观察者、模板、策略)。原创 2021-12-24 21:09:17 · 273 阅读 · 0 评论