1.classpath 和 classpath* 區(qū)別
1.classpath:只會到你的class路徑中查找找文件;
2.classpath*:不僅包含class路徑梁棠,還包括jar文件中(class路徑)進行查找.
2.applicationcontext.xml 和 dispatcher-servlet.xml區(qū)別
1.ApplicationContext.xml 是spring 全局配置文件捂掰,用來控制spring 特性的、比如:aop,sessionFactory,對應系統(tǒng)級別的配置舵抹,作用范圍是系統(tǒng)上下文;
2.dispatcher-servlet.xml是spring mvc里面的扔罪,控制器娇掏、攔截uri轉發(fā)view,對應的是 controller 級別的配置空执,作用范圍是控制層上下文浪箭。
使用@Value注解獲取*.property,在applicationContext.xml中引入配置文件取到的值${mysql.username}而不是真正的值脆烟,需要在dispatcherServlet中引入:
在使用spring mvc時山林,實際上是兩個spring容器:
1房待,dispatcher-servlet.xml 是一個邢羔,我們的controller就在這里,所以這個里面也需要注入屬性文件
org.springframework.web.servlet.DispatcherServlet
這里最終是使用WebApplicationContext parent =WebApplicationContextUtils.getWebApplicationContext(getServletContext()); 創(chuàng)建spring容器桑孩,代碼在FrameworkServlet中
2拜鹤,applicationContext.xml 是另外一個,也需要注入屬性文件
org.springframework.web.context.ContextLoaderListener
在我們的service中可以拿到@Value注入的值流椒,那是因為我們通常都會把獲取屬性文件定義在applicationContext.xml中敏簿,這樣在 Controller中是取不到的,必須在dispatcher-servlet.xml 中把獲取屬性文件再定義一下