框架篇
文章平均质量分 83
java框架
林知屿
努力编程
展开
-
SpringMVC11、文件上传和下载
一旦设置了enctype为multipart/form-data,浏览器即会采用二进制流的方式来处理表单数据,而对于文件上传的处理则涉及在服务器端解析原始的HTTP响应。 文件上传是项目开发中最常见的功能之一 ,springMVC 可以很好的支持文件上传,但是SpringMVC上下文中默认没有装配MultipartResolver,因此默认情况下其不能处理文件上传工作。测试,文件下载OK,大家可以和我们之前学习的JavaWeb原生的方式对比一下,就可以知道这个便捷多了!测试上传文件,OK!原创 2024-03-11 13:21:06 · 1018 阅读 · 0 评论 -
SpringMVC10、拦截器
SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。开发者可以自己定义一些拦截器来实现特定的功能。拦截器是AOP思想的具体应用。过滤器servlet规范中的一部分,任何java web工程都可以使用在url-pattern中配置了/*之后,可以对所有要访问的资源进行拦截拦截器拦截器是SpringMVC框架自己的,只有使用了SpringMVC框架的工程才能使用。原创 2024-03-11 13:17:57 · 507 阅读 · 0 评论 -
SpringMVC09、Ajax
AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。Ajax 不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web应用程序的技术。在 2005 年,Google 通过其 Google Suggest 使 AJAX 变得流行起来。Google Suggest能够自动帮你完成搜索单词。原创 2024-03-10 14:15:06 · 997 阅读 · 0 评论 -
SpringMVC08、Json
JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式,目前使用特别广泛。采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。在 JavaScript 语言中,一切都是对象。因此,任何JavaScript 支持的类型都可以通过 JSON 来表示,例如字符串、数字、对象、数组等。对象表示为键值对,数据由逗号分隔。原创 2024-03-10 14:05:01 · 1023 阅读 · 0 评论 -
SpringMVC07、整合SSM
SSM框架的重要程度是不言而喻的,学到这里,大家已经可以进行基本网站的单独开发。到目前为止,这个SSM项目整合已经完全的OK了,可以直接运行进行测试!这个练习十分的重要,大家需要保证,不看任何东西,自己也可以完整的实现出来!需要熟练掌握MySQL数据库,Spring,JavaWeb及MyBatis知识,简单的前端知识;我们发现查询的东西不存在的时候,查出来的页面是空的,我们可以提高一下用户的体验性!或许很多人,工作就做这些事情,但是对于个人的提高来说,还远远不够!ssmbuild , 添加web的支持。原创 2024-03-09 16:47:13 · 2194 阅读 · 0 评论 -
SpringMVC05、结果跳转方式
设置ModelAndView对象 , 根据view的名称 , 和视图解析器跳到指定的页面 .重定向 , 不需要视图解析器 , 本质就是重新请求一个新地方嘛 , 所以注意路径问题.页面 : {视图解析器前缀} + viewName +{视图解析器后缀}通过设置ServletAPI , 不需要视图解析器 .可以重定向到另外一个请求实现 .测试前,需要将视图解析器注释掉。对应的controller类。原创 2024-03-09 11:27:13 · 426 阅读 · 0 评论 -
SpringMVC03、HelloSpring
小结:看这个估计大部分同学都能理解其中的原理了,但是我们实际开发才不会这么写,不然就疯了,还学这个玩意干嘛!在视图解析器中我们把所有的视图都存放在/WEB-INF/目录下,这样可以保证视图安全,因为这个目录下的文件,客户端不能直接访问。< url-pattern > / 不会匹配到.jsp, 只针对我们编写的请求;写要跳转的jsp页面,显示ModelandView存放的数据,以及我们的正常页面;配置Tomcat , 开启服务器 , 访问 对应的请求路径!原创 2024-03-08 12:15:52 · 1266 阅读 · 0 评论 -
SpringMVC04、Controller 及 RestFul
此概念据说来自《程序员修炼之道》书中的一个故事,传说程序大师随身携带一只小黄鸭,在调试代码的时候会在桌上放上这只小黄鸭,然后详细地向鸭子解释每行代码,然后很快就将问题定位修复了。通过路径变量的类型可以约束访问参数,如果类型不一样,则访问不到对应的请求方法,如这里访问是的路径是/commit/1/a,则路径与方法不匹配,而不会是参数转换失败。我们都有过向别人(甚至可能向完全不会编程的人)提问及解释编程问题的经历,但是很多时候就在我们解释的过程中自己却想到了问题的解决方案,然后对方却一脸茫然。原创 2024-03-08 12:22:05 · 1280 阅读 · 0 评论 -
SpringMVC02、什么是SpringMVC
=Spring MVC是Spring Framework的一部分,是基于Java实现MVC的轻量级Web框架。==我们为什么要学习SpringMVC呢?轻量级,简单易学高效 , 基于请求响应的MVC框架与Spring兼容性好,无缝结合约定优于配置功能强大:RESTful、数据验证、格式化、本地化、主题等简洁灵活Spring的web框架围绕[ 调度Servlet ] 设计。DispatcherServlet的作用是将请求分发到不同的处理器。原创 2024-02-29 14:44:33 · 1082 阅读 · 0 评论 -
SpringMVC01、回顾MVC
MVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范。是将业务逻辑、数据、显示分离的方法来组织代码。MVC主要作用是降低了视图与业务逻辑间的双向偶合。MVC不是一种设计模式,MVC是一种架构模式。当然不同的MVC存在差异。数据模型,提供要展示的数据,因此包含数据和行为,可以认为是领域模型或JavaBean组件(包含数据和行为),不过现在一般都分离开来:Value Object(数据Dao) 和 服务层(行为Service)。原创 2024-02-29 14:42:30 · 1093 阅读 · 0 评论 -
Spring12、声明式事务
假设 ServiveX#methodX() 都工作在事务环境下(即都被 Spring 事务增强了),假设程序中存在如下的调用链:Service1#method1()->Service2#method2()->Service3#method3(),那么这 3 个服务类的 3 个方法通过 Spring 的事务传播机制都工作在同一个事务中。Spring在不同的事务管理API之上定义了一个抽象层,使得开发人员不必了解底层的事务管理API就可以使用Spring的事务管理机制。如果不配置,就需要我们手动提交控制事务;原创 2024-02-24 20:47:50 · 1308 阅读 · 2 评论 -
Spring11、整合Mybatis
MyBatis-Spring 会帮助你将 MyBatis 代码无缝地整合到 Spring 中。原创 2024-02-24 20:44:35 · 813 阅读 · 0 评论 -
Spring10、AOP
AOP(Aspect Oriented Programming)意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。原创 2024-02-24 20:34:56 · 817 阅读 · 0 评论 -
Spring09、代理模式
/args -包含的方法调用传递代理实例的参数值的对象的阵列,或null如果接口方法没有参数。分析: 在这个过程中,你直接接触的就是中介,就如同现实生活中的样子,你看不到房东,但是你依旧租到了房东的房子通过代理,这就是所谓的代理模式,程序源自于生活,所以学编程的人,一般能够更加抽象的看待生活中发生的事情。方法对象的声明类将是该方法声明的接口,它可以是代理类继承该方法的代理接口的超级接口。我们也可以编写一个通用的动态代理实现的类!我们想要静态代理的好处,又不想要静态代理的缺点,所以 , 就有了动态代理!原创 2024-02-24 18:37:45 · 1079 阅读 · 0 评论 -
Spring08、使用注解开发
JavaConfig 原来是 Spring 的一个子项目,它通过 Java 类的方式提供 Bean 的定义信息,在 Spring4 的版本, JavaConfig 已正式成为 Spring4 的核心功能。关于这种Java类的配置方式,我们在之后的SpringBoot 和 SpringCloud中还会大量看到,我们需要知道这些注解的作用即可!为了更好的进行分层,Spring可以使用其它三个注解,功能一样,目前使用哪一个功能都一样。在spring4之后,想要使用注解形式,必须得要引入aop的包。原创 2024-02-24 16:23:46 · 836 阅读 · 0 评论 -
Spring07、Bean的自动装配
因为按byName规则找不对应set方法,真正的setCat就没执行,对象就没有初始化,所以调用时就会报空指针错误。删掉cat2,将cat的bean名称改掉!因为是按类型装配,所以并不会报异常,也不影响最后的结果。使用autowire byType首先需要保证:同一类型的对象,在spring容器中唯一。true,对象必须存对象,不能为null。由于在手动配置xml过程中,常常发生字母缺漏和大小写等错误,而无法对其进行检查,使得开发效率降低。组件扫描和自动装配组合发挥巨大威力,使的显示的配置降低到最少。原创 2024-02-24 16:02:33 · 901 阅读 · 0 评论 -
Spring06、依赖注入(DI)
Singleton是单例类型,就是在创建起容器时就同时自动创建了一个bean的对象,不管你是否使用,他都存在了,每次获取到的对象都是同一个对象。针对每次HTTP请求,Spring容器会根据loginAction bean的定义创建一个全新的LoginAction bean实例,且该loginAction bean实例仅在当前HTTP request内有效,因此可以根据需要放心的更改所建实例的内部状态,而其他请求中根据loginAction bean定义创建的实例,将不会看到这些特定于某个请求的状态变化。原创 2024-02-24 15:19:38 · 751 阅读 · 0 评论 -
Spring05、Spring配置
alias 设置别名 , 为bean设置别名 , 可以设置多个别名。团队的合作通过import来实现 .原创 2024-02-24 14:26:53 · 391 阅读 · 0 评论 -
Spring04、IOC创建对象方式
结果可以发现,在调用show方法之前,User对象已经通过无参构造初始化了!结论:在配置文件加载的时候。其中管理的对象都已经初始化了!原创 2024-02-24 14:19:13 · 384 阅读 · 0 评论 -
Spring03、HelloSpring
OK , 到了现在 , 我们彻底不用再程序中去改动了 , 要实现不同的操作 , 只需要在xml配置文件中进行修改 , 所谓的IoC,一句话搞定 : 对象由Spring 来创建 , 管理 , 装配!控制 : 谁来控制对象的创建 , 传统应用程序的对象是由程序本身控制创建的 , 使用Spring后 , 对象是由Spring来创建的。注 : spring 需要导入commons-logging进行日志记录 . 我们利用maven , 他会自动下载对应的依赖项 .依赖注入 : 就是利用set方法来进行注入的.原创 2024-02-24 13:52:04 · 334 阅读 · 0 评论 -
Spring01、Spring概述
Spring : 春天 —->给软件行业带来了春天2002年,Rod Jahnson首次推出了Spring框架雏形interface21框架。2004年3月24日,Spring框架以interface21框架为基础,经过重新设计,发布了1.0正式版。很难想象Rod Johnson的学历 , 他是悉尼大学的博士,然而他的专业不是计算机,而是音乐学。原创 2024-02-24 00:38:39 · 994 阅读 · 0 评论 -
Mybatis11、MyBatis缓存
什么是缓存 [ Cache ]?存在内存中的临时数据。将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题。为什么使用缓存?减少和数据库的交互次数,减少系统开销,提高系统效率。什么样的数据能使用缓存?经常查询并且不经常改变的数据。原创 2024-02-21 22:40:37 · 765 阅读 · 0 评论 -
Mybatis10、动态SQL
动态SQL指的是根据不同的查询条件 , 生成不同的Sql语句.官网描述:MyBatis 的强大特性之一便是它的动态 SQL。如果你有使用 JDBC 或其它类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句的痛苦。例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL 这一特性可以彻底摆脱这种痛苦。虽然在以前使用动态 SQL 并非一件易事,但正是 MyBatis 提供了可以被用在任意 SQL 映射语句中的强大的动态 SQL 语言得以改进这种情形。原创 2024-02-21 22:01:54 · 714 阅读 · 0 评论 -
Mybatis09、一对多的处理
所以association是用于一对一和多对一,而collection是用于一对多的关系。将Mapper文件注册到MyBatis-config文件中。将Mapper文件注册到MyBatis-config文件中。注意一对多和多对一 中:字段和属性对应的问题。尽量使用Log4j,通过日志来查看自己的错误。根据实际要求,尽量编写性能更高的SQL语句。.. 和之前一样,搭建测试的环境!编写接口对应的Mapper配置文件。编写接口对应的Mapper配置文件。注意属性名和字段不一致的问题。集合-collection。原创 2024-02-21 21:43:06 · 270 阅读 · 0 评论 -
Mybatis08、多对一的处理
编写Mapper接口对应的 mapper.xml配置文件 【两个】去mybatis-config文件中注入【此处应该处理过了】编写完毕去Mybatis配置文件中,注册Mapper!编写实体类对应的Mapper接口 【两个】给StudentMapper接口增加方法。除了上面这种方式,还有其他思路吗?我们还可以按照结果进行嵌套处理;IDEA安装Lombok插件。编写对应的Mapper文件。编写对应的mapper文件。【Lombok的使用】原创 2024-02-21 21:37:48 · 290 阅读 · 0 评论 -
Mybatis07、使用注解开发
大家之前都学过面向对象编程,也学习过接口,但在真正的开发中,很多时候我们会选择面向接口编程根本原因 : 解耦 , 可拓展 , 提高复用 , 分层开发中 , 上层不用管具体的实现 , 大家都遵守共同的标准 , 使得开发变得容易 , 规范性更好关于接口的理解三个面向区别面向对象是指,我们考虑问题时,以对象为单位,考虑它的属性及方法 .面向过程是指,我们考虑问题时,以一个具体的流程(事务过程)为单位,考虑它的实现 .接口设计与非接口设计是针对复用技术而言的,与面向对象(过程)不是一个问题.更多的体现就是对系统整体原创 2024-02-21 21:23:02 · 613 阅读 · 0 评论 -
Mybatis06、MyBatis分页的实现
在学习mybatis等持久层框架的时候,会经常对数据进行增删改查操作,使用最多的是对数据库进行查询操作,如果查询大量数据的时候,我们往往使用分页进行查询,也就是每次处理小部分数据,这样对数据库压力就在可控范围内。对于以往的开发过程,我们会经常使用到debug模式来调节,跟踪我们的代码执行过程。因此,我们必须选择日志工具来作为我们开发,调节程序的工具。我们除了使用Limit在SQL层面实现分页,也可以使用RowBounds在Java代码层面实现分页,当然此种方式作为了解即可。Mapper接口,参数为map。原创 2024-02-21 21:16:29 · 898 阅读 · 0 评论 -
Mybatis05、ResultMap
但是肯定不是的,数据库中,存在一对多,多对一的情况,我们之后会使用到一些高级的结果集映射,association,collection这些,我们将在之后讲解,今天你们需要把这些知识都消化掉才是最重要的!mybatis会根据这些查询的列名(会将列名转化为小写,数据库不区分大小写) , 去对应的实体类中查找相应列名的set方法设值 , 由于找不到setPwd() , 所以password返回null;最优秀的地方在于,虽然你已经对它相当了解了,但是根本就不需要显式地用到他们。查看之前的数据库的字段名。原创 2024-02-21 21:11:15 · 911 阅读 · 0 评论 -
Mybatis04、MyBatis配置解析
所以它应该存活在一个业务请求中,处理完整个请求后,应该关闭这条连接,让它归还给 SqlSessionFactory,否则数据库资源就很快被耗费精光,系统就会瘫痪,所以用 try…语句来保证其正确关闭。MyBatis 的真正强大在于它的映射语句,这是它的魔力所在。数据库这些属性都是可外部配置且可动态替换的,既可以在典型的 Java 属性文件中配置,亦可通过 properties 元素的子元素来传递。中的 Java Bean,在没有注解的情况下,会使用 Bean 的首字母小写的非限定类名来作为它的别名。原创 2024-02-21 20:54:32 · 887 阅读 · 0 评论 -
Mybatis03、CRUD操作
为了规范操作,在SQL的配置文件中,我们尽量将Parameter参数和resultType都写上!配置文件中namespace中的名称为对应Mapper接口或者Dao接口的完整包名,必须一致!我们一般使用insert标签进行插入操作,它的配置和select标签差不多!我们一般使用update标签进行更新操作,它的配置和select标签差不多!我们一般使用delete标签进行删除操作,它的配置和select标签差不多!在UserMapper接口中添加对应的方法。参数,尤其是多个参数时,必须写上!原创 2024-02-21 20:44:55 · 358 阅读 · 0 评论 -
Mybatis02、MyBatis第一个程序
2.1、代码演示搭建实验数据库导入MyBatis相关 jar 包编写MyBatis核心配置文件编写MyBatis工具类创建实体类编写Mapper接口类编写Mapper.xml配置文件编写测试类运行测试。原创 2024-02-21 20:37:40 · 372 阅读 · 0 评论 -
Mybatis01、Mybatis简介
MyBatis 是一款优秀的持久层框架MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的过程MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 实体类 【Plain Old Java Objects,普通的 Java对象】映射成数据库中的记录。MyBatis 本是apache的一个开源项目ibatis, 2010年这个项目由apache 迁移到了google code,并且改名为MyBatis。2013年11月迁移到。原创 2024-02-21 19:54:05 · 1172 阅读 · 0 评论