Apache Struts

Spring MVC 和 Spring 总结

倖福魔咒の 提交于 2020-08-14 04:16:54
1. 为什么使用Spring ? 1). 方便解耦,简化开发 通过Spring提供的IoC容器,可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合。 2). AOP编程的支持 通过Spring提供的AOP功能,方便进行面向切面的编程,如性能监测、事务管理、日志记录等。 3). 声明式事务的支持 4). 方便集成各种优秀框架 5). 降低Java EE API的使用难度 如对JDBC,JavaMail,远程调用等提供了简便封装 2. 什么是IoC,为什使用IoC ? IoC全称Iversion of Controller,控制反转。 这概念是说你不用创建对象,而只需要描述它如何被创建。 你不在代码里直接组装你的组件和服务,但是要在配置文件里描述哪些组件需要哪些服务,之后一个容器(IOC容器)负责把他们组装起来。 它能指导我们如何设计出松耦合、更优良的程序。 3. 什么是AOP,为什么使用AOP ? AOP全称:Aspect-Oriented Programming,面向切面编程。 AOP,面向切面编程,就是把可重用的功能提取出来,然后将这些通用功能在合适的时候织入到应用程序中,比如 事务管理 、 权限控制 、 日志记录 、性能统计等。 AOP并没有帮助我们解决任何新的问题,它只是提供了一种更好的办法,能够用更少的工作量来解决现有的一些问题

Spring框架之IOC(控制反转)

假装没事ソ 提交于 2020-08-14 02:07:14
目录 第一章Spring框架简介 第二章IOC(控制反转)和DI(依赖注入) 第三章IOC控制反转实现的方式 3.1XML配置方式 3.2注解方式 3.3自动装配方式 第一章Spring框架简介 IOC(控制反转)和AOP(面向方面编程)作为Spring框架的两个核心,很好地实现了解耦合。所以,简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。 spring的基本框架主要包含六大模块:DAO、ORM、AOP、JEE、WEB、CORE Spring DAO:Spring提供了对JDBC的操作支持:JdbcTemplate模板工具类 。 Spring ORM:Spring可以与ORM框架整合。例如Spring整合Hibernate框架,其中Spring还提供HibernateDaoSupport工具类,简化了Hibernate的操作 。 Spring WEB:Spring提供了对Struts、Springmvc的支持,支持WEB开发。与此同时Spring自身也提供了基于MVC的解决方案 。 Spring AOP:Spring提供面向切面的编程,可以给某一层提供事务管理,例如在Service层添加事物控制 。 Spring JEE:J2EE开发规范的支持,例如EJB 。 Spring Core:提供IOC容器对象的创建和处理依赖对象关系 。

JAVA通关学习路线

僤鯓⒐⒋嵵緔 提交于 2020-08-13 18:16:39
想学习JAVA的童鞋们,推荐以下学习路线,一共十八步,每一步一脚印,技术搞起来。 阶段1 1) 学习HTML 2)学习CSS 3)Javascript 4)jquery 5)xml解析 6)Bootstrap 阶段2 7)JAVAse基础 8)mysql数据库 9)Powerdesigner 10)JDBC 11)JAVAWEB 阶段3 12)oracle 13)struts2 14)Hibernate 15)Spring 阶段4 16)Maven 17)SpringMVC 18)MyBatis 来源: oschina 链接: https://my.oschina.net/u/4415966/blog/4479719

Java 注解(Annotation)

我的梦境 提交于 2020-08-13 03:16:38
Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。 Java 语言中的类、方法、变量、参数和包等都可以被标注。和 Javadoc 不同,Java 标注可以通过反射获取标注内容。在编译器生成类文件时,标注可以被嵌入到字节码中。Java 虚拟机可以保留标注内容,在运行时可以获取到标注内容 。 当然它也支持自定义 Java 标注。 网上很多关于 Java Annotation 的文章,看得人眼花缭乱。Java Annotation 本来很简单的,结果说的人没说清楚;弄的看的人更加迷糊。 我按照自己的思路,对 Annotation 进行了整理。理解 Annotation 的关键,是理解 Annotation 的语法和用法,对这些内容,我都进行了详细说明;理解 Annotation 的语法和用法之后,再看 Annotation 的框架图,可能有更深刻体会。废话就说这么多,下面开始对 Annotation 进行说明。若您发现文章中存在错误或不足的地方,希望您能指出! 内置的注解 Java 定义了一套注解,共有 7 个,3 个在 java.lang 中,剩下 4 个在 java.lang.annotation 中。 作用在代码的注解是 @Override - 检查该方法是否是重写方法。如果发现其父类,或者是引用的接口中并没有该方法时,会报编译错误。

别再写一摞if-else了!再写开除!两种设计模式带你消灭它!

…衆ロ難τιáo~ 提交于 2020-08-12 10:12:45
题外话:看完评论感觉杠精真的是多,这篇文章明显是在说,不要写一大堆if-else,一大堆是啥意思不懂么,我没有一句话说了不要写if-else。开头也给出了需求,在这种需求的前提下不要写if-else,没毛病吧???真的觉得毁三观了。。 代码洁癖狂们!看到一个类中有几十个if-else是不是很抓狂? 设计模式学了用不上吗?面试的时候问你,你只能回答最简单的单例模式,问你有没有用过反射之类的高级特性,回答也是否吗? 这次就让设计模式(模板方法模式+工厂模式)和反射助你消灭if-else! 真的是开发中超超超超超超有用的干货啊! 那个坑货 某日,码农胖滚猪接到上级一个需求,这个需求牛逼了,一站式智能报表查询平台,支持mysql、pgxl、tidb、hive、presto、mongo等众多数据源,想要啥数据都能通通给你查出来展示,对于业务人员数据分析有重大意义! 虽然各个数据源的参数校验、查询引擎和查询逻辑都不一样,但是胖滚猪对这些框架都很熟悉,这个难不倒她,她只花了一天时间就都写完了。 领导胖滚熊也对胖滚猪的效率表示了肯定。可是好景不长,第三天,领导闲着没事,准备做一下code review,可把胖滚熊惊呆了,一个类里面有近30个if-else代码,我滴个妈呀,这可让代码洁癖狂崩溃了。 // 检验入参合法性 Boolean check = false; if(DataSourceEnum

java Beanutils.copyProperties( )用法

主宰稳场 提交于 2020-08-12 02:55:41
这是一篇开发自辩甩锅稿~~~~ 昨天测试小姐姐将我的一个bug单重开了,emmmm....内心OS:就调整下对象某个属性类型这么简单的操作,我怎么可能会出错呢,一定不是我的锅!!but再怎么抗拒,bug还是要改的,毕竟晚上就要发版本了~~ 老老实实将我前天改的部分跟了一遍,恩,完美,没有任何的缺失~~but本应success的测试数据,接口返还的结果确实是false来着,那还是老老实实debug吧。 一步步跟下来,恩,多么顺畅,就说一定不是我的锅~~诶?不对不对,这里的ID值,为啥是null?传过来有值的呀!!发现原来是别人在修复bug时用了Beanutils.copyProperties( obj1,obj2),but 因为obj1中属性名称id,obj2中属性名称afterId,因为Beanutils.copyProperties( )要求处理的两个对象的属性名称相同时才可以正常赋值,那好吧,我们今天就好好讲讲关于 Beanutils.copyProperties( )吧~ 1、简介 BeanUtils提供对Java反射和自省API的包装。其主要目的是利用反射机制对JavaBean的属性进行处理。 2、用法 如果有两个具有很多相同属性的JavaBean,一个很常见的情况就是Struts里的PO对象(持久对象)和对应的ActionForm。例如:一个用户注册页面

Java框架自学视频教程下载:应用开发框架

时间秒杀一切 提交于 2020-08-11 13:18:56
  一、概述   Web应用架构可以划分为两大子系统:前端子系统和后台子系统。   前端子系统:   1.基础技术:Html/Javascript/CSS/Flash   2.开发框架:jQuery,Extjs,Flex等;   后台子系统:   1.基础技术:JavaServlet;   2.开发框架:Struts,Spring,Hibernate,ibatis等;   3.应用服务器:Tomcat/Jetty   编程模型:B/S模型。客户端向服务器端发送请求,服务器经过处理后返回响应,然后客户端根据响应及需求绘制前端展现。   在用户客户端和实际提供功能的Web服务器之间还可能存在着代理服务器,负载均衡服务器,不过那些属于锦上添花的事物,暂时不在考虑范围内。   客户端应用理念:客户端承担大量的交互逻辑及渲染工作,服务器端主要是处理请求和返回数据。   前后端系统耦合:客户端和服务器端各自处理自己内部的子系统耦合;而客户端与服务器端的耦合简化为一个通信与数据通道。该通道用来传输通信请求和返回数据。   请求通信:采用Http/Tcp协议   数据通道:采用Json,xml,文本字符串,字节。内部系统一般采用Json作为数据交换格式;系统间的互操作则采用XML来规范;文本字符串是最一般的形式,字节是最底层的形式。   二、架构演变   最轻的架构:jQuery+Servlet

阿里15年Java开发经验大佬推荐的跳槽涨薪秘籍

回眸只為那壹抹淺笑 提交于 2020-08-11 10:42:51
计算机基础知识 数据结构 1、什么是队列、栈、链表 2、什么是树(平衡树,排序树,B树,B+树,R树,红黑树)、堆(大根堆、小根堆)、图(有向图、无向图、拓扑) 3、栈和队列的相同和不同之处 4、栈通常采用的两种存储结构 5、两个栈实现队列,和两个队列实现栈 算法 1、排序都有哪几种方法? 2、会写常用的排序算法,如快排,归并等。 3、各种排序算法的时间复杂度和 稳定性 ,重点快排。 4、单链表的遍历和逆序 5、深度优先搜索和 广度优先搜索 6、最小生成树 7、常见Hash算法,哈希的原理和代价 8、全排列、贪心算法、KMP算法、hash算法 9、一致性Hash算法 操作系统 1、虚拟内存管理 2、换页算法 3、进程间通信 4、进程同步:生产者消费者问题、哲学家就餐问题、读者写者问题 5、死锁的四个必要条件,避免方法 6、Linux的一些基本命令,如ls、 tail、chmod等 计算机网络 1、tcp,udp区别 2、HTTP请求和响应的全过程 3、HTTP常见响应码:200、301、302、404、500 4、get和post的区别 5、forward和redirect的区别 6、osi七层模型 7、tcp/ip四层模型及原理 8、TCP和UDP区别 9、TCP的三次握手,四次关闭 10、丢包,粘包, 11、容量控制,拥塞控制 12、子网划分 13、IPV4和IPV6 14

盘点 6 个被淘汰的 Java 技术,它们都曾经风光过!

孤街醉人 提交于 2020-08-11 05:26:21
大家好啊,今天栈长给大家分享下我的开发历程中,我知道的那些被淘汰的技术或者框架,有些我甚至都没有用过,但我知道它曾经风光过。 废话不多说,下面我要开始吹了…… 1、Swing 下面这个是用 swing 开发的: 图来源网络,有没有似曾相识的感觉?懂的自然懂! 栈长去年中秋也用过 swing: 这个中秋,我用 Java 画了一个月饼! Swing 算是 Java 早期代替 AWT 的桌面应用 GUI 开发工具包,一个听到就已经淘汰的技术,给我的感觉就是丑丑丑!现在与 AWT 一起在时间这个长河里长眠。 如果 Java GUI 库发展历程分为三代,可以是: AWT > SWING > JAVAFX 随着 JavaFx 的发布,加速 SWING 的被淘汰。下面这个是用 JavaFx 开发的: 图来源:zhihu.com/question/54498643/answer/271632290 现在 JavaFx 也有十来年了,虽然这篇帖子也在说 JavaFx 淘汰了的,只是现在桌面应用不是主流吧,我也没用过不敢乱说,JavaFx 在桌面应用开发应该还是有一席之地的。 2、JSF JSF:Java Server Faces JSF是一种用于构建 Java Web 应用程序的表现层框架,和 Struts 一样性质的框架。 图来源: https://javabeat.net/jsf-2/ 国内用

java程序员如何进阶?掌握这些技术问题你就已经步入大神之路了

巧了我就是萌 提交于 2020-08-10 23:58:18
一、数据结构与算法基础 说一下几种常见的排序算法和分别的复杂度。 用Java写一个冒泡排序算法 描述一下链式存储结构。 如何遍历一棵二叉树? 倒排一个LinkedList。 用Java写一个递归遍历目录下面的所有文件。 二、Java基础 接口与抽象类的区别? Java中的异常有哪几类?分别怎么使用? 常用的集合类有哪些?比如List如何排序? ArrayList和LinkedList内部的实现大致是怎样的?他们之间的区别和优缺点? 内存溢出是怎么回事?请举一个例子? ==和equals的区别? hashCode方法的作用? NIO是什么?适用于何种场景? HashMap实现原理,如何保证HashMap的线程安全? JVM内存结构,为什么需要GC? NIO模型,select/epoll的区别,多路复用的原理 Java中一个字符占多少个字节,扩展再问int, long, double占多少字节 创建一个类的实例都有哪些办法? final/finally/finalize的区别? Session/Cookie的区别? String/StringBuffer/StringBuilder的区别,扩展再问他们的实现? Servlet的生命周期? 如何用Java分配一段连续的1G的内存空间?需要注意些什么? Java有自己的内存回收机制,但为什么还存在内存泄露的问题呢? 什么是java序列化