web.xml, 至关于一个java web项目的配置文件php
applicationContext.xml, spring配置文件, mybatis链接mysql配置文件html
sql-map-config-mysql.xml,mybatis配置文件前端
application.properties, 配置文件常量java
Servlet至关于PHPmysql
org.springframework.web.context.ContextLoaderListener至关于ThinkPHP的核心包web
servlet和Filter初始化前和销毁后,都会给实现了servletContextListener接口的监听器发出相应的通知。spring
ContextLoadListener的定义,实现了上面的servletContextListener。这里用到了代理模式,简单的代理了ContextLoader类。ContextLoadListener类用来建立Spring application context,而且将application context注册到servletContext里面去。sql
在 Servlet API中有一个ServletContextListener接口,它可以监听ServletContext对象的生命周期,实际上就是监听Web应用的生命周期。当Servlet容器启动或终止Web应用时,会触发ServletContextEvent事件,该事件由ServletContextListener来处理。在ServletContextListener接口中定义了处理ServletContextEvent 事件的两个方法contextInitialized()和contextDestroyed()。ContextLoaderListener监听器的做用就是启动Web容器时,自动装配ApplicationContext的配置信息。由于它实现了ServletContextListener这个接口,在web.xml配置了这个监听器,启动容器时,就会默认执行它实现的方法。因为在ContextLoaderListener中关联了ContextLoader这个类,因此整个加载配置过程由ContextLoader来完成。数据库
综上,ContextLoaderListener类起着相当重要的做用。它读取web.xml中配置的context-param中的配置文件,提早在web容器初始化前准备业务对应的Application context;将建立好的Application context放置于ServletContext中,为springMVC部分的初始化作好准备。tomcat
DispatchServlet就相似TP的前端入口index.php
Filter,主要做用:统一设置字符集等。依赖于servlet容器,过滤器实例只在初始化的时候调用一次。
关于classpath, 若是只是一个普通的java web项目,classpath就是src目录,若是是用Maven构建的就是resources目录下。可是最终classpath都是映射到WEB-INF/classes
context:component-scan:在xml配置了这个标签后,spring能够自动去扫描base-pack下面或者子包下面的java文件,若是扫描到有@Component @Controller@Service等这些注解的类,则把这些类注册为bean(bean就是实现了gettter和setter的一个类,用来和数据库交互,和PHP中的model相似)
mvc:annotation-driven:在使用Spring MVC来作web前端框架时,须要使用标签<mvc:annotation-driven/>,它是启用MVC注解的钥匙。若是没有使用这个标签,而仅仅是使用<context:component-scan/>标签扫描并注册了相关的注解类到bean中,那么相关的细节功能并不能使用(@Controller@RequestMapping等基本功能除外),好比返回类型的定义,@RestController等。<context:component-scan/>标签只是注册bean,<mvc:annotation-driven/>则是告诉框架让这些注解生效,是递进关系。
profiles标签下有两个profile分别对应了本地和线上两个环境,分别对应了main/resource/distribute/local|server, 两套配置,本地运行mvn clean package -Plocal -DVERSION=12345 -Dmaven.test.skip=false tomcat:run,线上应该是mvn clean package -Pserver -DVERSION=12345 -Dmaven.test.skip=false tomcat:run?
repositories下面的两个repository配置的是项目中依赖仓库的地址,若是在项目中设置了地址,那maven的配置文件setting.xml中的配置就不会用到,好比我本机maven的setting.xml配置的地址是maven.aliyun.com,可是项目中实际配置了咱们公司内网的maven地址http://maven.fn.com,因此maven.aliyun.com就不会被用到,全部的依赖都是从maven.fn.com下载
本地运行btob-service: mvn clean package -Plocal -DVERSION=12345 -Dmaven.test.skip=false tomcat:run
applicationContext.xml的解释:http://www.javashuo.com/article/p-utdmmbof-kb.html
Spring MVC启动过程详解:http://www.javashuo.com/article/p-wuvvkifd-by.html
Spring contextConfigLocation默认加载文件的位置: http://www.javashuo.com/article/p-opzhmrun-hz.html
Spring MVC配置文件概述:https://www.yiibai.com/spring_mvc/springmvc_overview.html
浅谈jdbcTemplate和MyBatis的区别:http://www.javashuo.com/article/p-hwcvqmyf-hy.html