入职后发现企业中的项目往往和自己接触的稍微不同,需要理解好配置文件,而不是像以往一样直接上网down一个配置文件,企业中的项目很多类都是自己书写的与业务十分紧密关联。 企业中,项目的分离,可能调用服务调用数据库,不同的项目结构大同小异,但是基本原理还是一样的。 下文将介绍如何快速理解一个基于Spring的JavaWeb项目。
公司的项目往往具有测试,开发,生产的等多种环境,项目的运行部署在内网内,大多数人开始接触的项目都是公司整体项目的一小块,根据公司大项目的 开发文档,需求文档查看整体业务,大的技术框架,再开始进行自己的Web项目研究。 其中我们的web项目设计不会脱离规范,可以根据查看顺序去梳理业务细节。 查看顺序:配置文件→依赖文件→MVC(配合开发者工具走通 一个逻辑)→配合参数类进行业务熟悉。 最后对于缓存,其他接口的实现,分布式架构等可以先不关注,后期发展,走好第一步。
Web.xml文件是项目核心配置文件。 首部:xml书写规则的Schema文件。 主体配置:基本项目依赖文件,Servlet配置,监听器,过滤器,session超时,欢迎错误页面等。
上下文[context-param] 作用:该元素用来声明应用范围(整个WEB项目)内的上下文初始化参数。 param-name 设定上下文的参数名称。必须是唯一名称 param-value 设定的参数名称的值。
selvert配置,所有URL请求都将被Spring MVC的DispatcherServlet截获。。
<servlet> <servlet-name>Dispatch</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <!--"/"路径型配置, 请求是否加后缀都可以 --> <servlet-mapping> <servlet-name>Dispatch</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>注:命名中默认文件路径为/WEB-INF/[servlet-name取的名字]-servlet.xml
监听器[listener] 一个Java类用来监听其他的JavaBean的变化,在javaweb中监听器就是监听三个域对象的状态(request,session,servletContext)。
过滤器[Filter] 实际上就是对web资源进行拦截,做一些处理后再交给下一个过滤器或servlet处理 通常都是用来拦截request进行处理的,也可以对返回的response进行拦截处理 作用:自动登录,统一设置编码格式,访问权限控制,敏感字符过滤等。
安全限制[security-constraint] 之前未接触,限制用户的方法访问相应的资源。
会话参数[Session] 设置会话()过期时间,其中时间以分钟为单位,假如设置60分钟超时:
<session-config> <session-timeout>60</session-timeout> </session-config>web.xml文件一般位于项目的WEB-INF目录下。
web.xml加载过程:https://blog.csdn.net/ahou2468/article/details/79015251 顺序是:->->->。其中,如果web.xml中出现了相同的元素,则按照在配置文件中出现的先后顺序来加载。
不详细介绍Spring构造Bean的具体参数,以及配置信息。
DispatcherServlet是Spring提供的前置处理器服务,本质是Servlet,集中处理来自用户的HTTP请求。 一般配置内容:基本扫描Bean,mvc资源处理(拦截器,静态资源)
一般在resources文件夹下,具有Spring需要装载的Bean属性配置,可以多文件设计。
spring Bean配置详解:https://www.jianshu.com/p/b9f450fdd69a
Spring的相关配置可以让我们了解系统的装载类(核心业务相关类),扫描域,拦截器可以看到系统统一的业务数据处理。
Java项目一般会配合Maven,找到pom.xml文件快速找到项目依赖,可大体了解项目的技术框架和公司企业内部jar包。
为企业项目的一个模拟文件路径,虽然可能和常见的不同,但是本质是一样的。 企业级项目一般公共部分具有常量定义(constants),配置参数(config),异常处理(exception),拦截器(interceptor),工具类(utils),验证类(validation),模板引擎(view)。 通过MVC相关文件夹熟悉代码: 域(domain)/对象(vo/entity):快速了解业务实体。 业务(handler/service/dao/mapper):具体处理业务。 控制器(controller):处理,数据控制业务跳转。
注:handler可能调用服务,系统数据库不透明。 同时可以根据其他参数类,枚举类了解系统业务和参数含义。 例子如下:
webapp:视图相关文件目录。 host文件:内网相关服务器配置,可能需要和公司员工索要。 其他配置文件:证书,服务器,日志,框架等。