easyjweb启动

 

当tomcat启动时,由web.xml配置信息中初始化CharsetFilter类和ActionServlet类,启动顺序可由load-on-startup配置。ActionServlet继承自HttpSetvlet类,由init(SetvletConfig)方法启动,执行initEasyJWeb()方法进行初始化:


1、读取配置文件

  • 配置文件默认为WEB-INF/easyjf-web.xml,也可在web.xml中更改配置路径

<context-param>
	<param-name>easyjwebConfigLocation</param-name>
	<param-value>/WEB-INF/easyjf-web1.xml,/WEB-INF/easyjf-web2.xml</param-value>
</context-param>
  • 读取得到modules,forms,pages,beans,initApp,interceptors,errorHandler,ajaxConfigManager,全局属性配置等,保存在webConfig中。

2、初始化容器

  • 将所有module另以bean形式保存,在容器中注册配置的bean并加载及注册defaultActionPackage中的bean(@Bean注解)以及module(*Action类名),处理module的别名alias。
  • bean的scope有四种方式:
    • singleton:在一个应用上下文中,只存在一个该bean的实例。是bean的默认scope,若该bean非lazy则在容器初始化时马上初始化并注册到单例容器SingletonBeanContainer中
    • prototype:每次请求都重新生成一个新的对象。实例化后返回即用不保存。
    • request:在一个请求生命周期内存在
    • session:在一个session生命周期内都存在
 若配置了factory-method则执行无参方法,或者根据constructor-arg配置构造类实例。
  • easyjweb内置了IOC容器,根据bean配置信息进行setter注入
    • 属性注解:@Inject(name="xx"),xx默认为AutoJnjectByType,按照类型注入;若xx="service",则注入name="service"的bean,需要手动配置。@DisInject表示不注入。
    • 文件配置:inject属性有3种none、bytype、byname,module默认为none,bean默认为bytype。none表示不注入,bytype按照属性类型注入,byname注入指定的bean,需要配置相应property。
    • 最后用com.easyjf.beans.BeanWrapper实现setter方法注入。
  • 容器bean包含三部分:1、单例bean容器SingletonBeanContainer,均已实例化,2、普通bean,注册在容器中,每次获得均需要实例化,3、innerContainer,如spring容器中配置的bean,每次查找bean的顺序分别是单例bean-->普通bean-->innerContainer

3、初始化其他信息

  • 将webConfig、container、ActionServlet保存到FrameworkEngine中,便于调用
  • 初始化Ajax服务(保存AjaxConfigManager信息),模板(配置velocity),启动initApp

4、结束


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值