发表于: 2019-12-28 23:58:55
3 1170
在上次的日报里,我表达了我的疑惑,然后我开始搜索一些关于java ee企业开发相关的信息。在这里我自己再整理一遍,有不对的希望师兄给我指出来。
首先,摆出修真院官网的 JAVA 后端职业规划资料。
------------------------------------------------------------------------------------------------------------------
环境【IDE(Idea/Eclipse,Maven,jenkins,Nexus,Jetty,Shell,Host)、源码管理(SVN/Git),WEB服务器(nginx,tomcat,Resin)】
基础【Http,REST,跨域,语法,Websocket,数据库,计算机网络,操作系统,算法,数据结构】
框架【Spring,AOP,Quartz,Json TagLib,tiles,activeMQ,memcache,redis,mybatis,log4j,junit】
------------------------------------------------------------------------------------------------------------------
Maven:(一个项目管理工具)
它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。
1.版本:maven有自己的版本定义和规则
2.构建:可以完成编译,打包,部署等。
3.依赖管理:方便引入所需依赖 Jar 包,不需手动下载
4.文档生成:maven的site命令支持各种文档信息的发布,包括构建过程的各种输出,javadoc,产品文档等。
5.项目关系:一个大型的项目通常有几个小项目或者模块组成,用maven可以很方便地管理
Nexus:(Maven仓库管理器)
Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问。
=================================================================
jenkins:(每次修改完了项目,它负责自动编译·测试·发布和运行)
1.软件构建自动化 :配置完成后,CI系统会依照预先制定的时间表,或者针对某一特定事件,对目标软件进行构建。
2.构建可持续的自动化检查 :CI系统能持续地获取新增或修改后签入的源代码,也就是说,当软件开发团队需要周期性的检查新增或修改后的代码时,CI系统会不断确认这些新代码是否
破坏了原有软件的成功构建。这减少了开发者们在检查彼此相互依存的代码中变化情况需要花费的时间和精力(说直接一点也是钱啊,呵呵)。
3.构建可持续的自动化测试 :构建检查的扩展部分,构建后执行预先制定的一套测试规则,完成后触发通知(Email,RSS等等)给相关的当事人。
4.生成后后续过程的自动化 :当自动化检查和测试成功完成,软件构建的周期中可能也需要一些额外的任务,诸如生成文档、打包软件、部署构件到一个运行环境或者软件仓库。这样,构件
才能更迅速地提供给用户使用。
一个CI系统需要的最低要求是,一个可获取的源代码的仓库,一个包含构建脚本的项目。
=================================================================
jetty/tomcat/resin:(java web应用服务器)
都是servlet的容器,都符合servlet标准,也就是说功能是几乎一样的。在架构实现上有所区别,需要根据项目情况选择。
它为基于Java的web容器,例如JSP和servlet提供运行环境,运行于jvm之上。
Nginx、Apache:(静态 web 服务器)
它们在处理大量并发的请求连接、连接会话管理和静态内容请求等方面相比Tomcat更具优势。
一般在实际应用中,先是通过Nginx(或Apache)反向代理服务器接收请求,匹配分离动态/静态请求(动静分离),
如果是静态请求,则转发到另外的Nginx WEB服务器上,返回静态内容;
如果是动态请求,则转发到后面的Tomcat应用服务器,处理动态请求的业务逻辑。
==================================================================
Spring:(一个开源的轻量级Java开发应用框架)其目的是用于简化企业级应用程序开发。
Spring能帮我们做什么?
一.Spring能帮我们根据配置文件创建及组装对象之间的依赖关系。
二.Spring 面向切面编程能帮助我们无耦合的实现日志记录,性能统计,安全控制。
三、在传统应用程序当中,我们如何来完成数据库事务管理?需要一系列“获取连接,执行SQL,提交或回滚事务,关闭连接”,而且还要保证在最后一定要关闭连接,多么可怕的事情,而且也很无聊;如果采用Spring,我们只需获取连接,执行SQL,其他的都交给Spring来管理了,简单吧。所以,Spring能非常简单的帮我们管理数据库事务。
四、Spring还提供了与第三方数据访问框架(如Hibernate、JPA)无缝集成,而且自己也提供了一套JDBC访问模板,来方便数据库访问。
五、Spring还提供与第三方Web(如Struts、JSF)框架无缝集成,而且自己也提供了一套Spring MVC框架,来方便web层搭建。
六、Spring能方便的与Java EE(如Java Mail、任务调度)整合,与更多技术整合(比如缓存框架)。
个人体会:spring做了所有的脚手架工作,让开发者能够更加专注于业务代码的编写
Spring MVC:(Spring的一部分)
一个基于MVC架构的用来简化web应用程序开发的应用开发框架
MVC:(Model模型 View 视图 Controller 控制器)
这是一种软件架构思想,是一种开发模式,将软件划分为三种不同类型的模块,分别是模型,视图,和控制器。 模型:用于封装业务逻辑处理(java类); 视图:用于数据展现和操作界面(Servlet); 控制器:用于协调视图和模型(jsp);
SpringBoot:(实现自动配置,降低项目搭建的复杂度)
随着Spring越来越庞大,其配置文件也越来越繁琐,太多复杂的xml文件也一直是Spring被人诟病的地方,特别是近些年其他简洁的WEB方案层出不穷,如基于Python或Node.Js,几行代码就能实现一个WEB服务器,对比起来,大家渐渐觉得Spring那一套太过繁琐,此时,Spring社区推出了Spring Boot。
==================================================================
AOP和IoC是开发Spring库的指导思想。
AOP(面向切面的程序设计):(在开发过程中复用代码的方法)
具体的例子可以看博文:轻松理解AOP(面向切面编程)
上面的博文解释的非常形象,完全可以和这个抽象的名字联系起来。
Quartz:(触发器,提前设置好【服务挂了怎么办】这类不定时的任务,他检测到挂了就执行任务)
是一个开源的作业调度框架,可以让计划的程序任务一个预定义的日期和时间运行。Quartz可以用来创建简单或复杂的日程安排执行几十,几百,甚至是十万的作业数。
Json TagLib:(生成json的东西,比较灵活,jsp直接用)
tiles框架:(网页分块后复用)
网页很多时候就主题内容不一样,其他的插入的小广告,标题栏都一样,有了这个就不用每个网页都手动重复写相同的内容了。
还有几个内容明天再补上,日报不能断,先提交了····
评论