spring和springmvc的基礎知識點
1.spring中使用@Service("userservice")如何在其他地方引用這個service?
(1)getBean("userservice")
(2)@Autowired,如果系統中有多個物件,配合@Qulitifer使用
(3)@Resource(name="userservice")
2.spring中在預設情況下建立的bean是單例的嗎?
對
3.如何把一個bean定義成多例的?
(1)scope="prototype"
(2)@Scope(value="prototype")
4.什麼情況下我們應該把bean建立成單例的?舉例
mybatis中的sqlsessonfactory
5.單例多例在建立時間上有什麼區別?分別在什麼時候建立?
單例在容器建立的時候就建立好了(預設關閉懶載入)
多例在被使用的時候建立,例如getBean(id), @Autowried, ref。。。的時候
6.驗證是否bean.xml中的配置順序會影響物件的建立順序(限於單例情況)
會影響,最先配的最先例項化。如果一個beanA的建立需要另外一個beanB,這時雖然beanB在
beanA的後面,也不影響beanA的建立。
7.簡述springIOC的執行過程
首先讀入配置檔案——>根據配置檔案建立IOC容器——>例項化bean——>將例項化好
的bean放入IOC容器——>getBean(id),Autowired的方式使用bean
8.某個類實現了介面,如果裡面的方法沒有用到AOP功能,spring還為它生成代理類嗎?
不會,只有切面在切方法的時候,spring才會為目標物件生成代理類。
9.預設情況下,一個實現了介面的類用AOP的話,spring將會生成什麼型別的代理類?
預設情況,這樣的話會生成JDK代理,可以強制生成CGLIB代理。
10.預設情況下,一個沒有實現介面的類用AOP的話spring將會生成什麼型別的代理類?
CGLIB代理。
11.JDK代理能為沒有實現介面的類生成動態代理類嗎?
不能,JDK代理必須要求目標類有介面,只能用cglib。但是cglib不能代理final型別的類和方法。
12.一個沒有實現介面的類如果要生成動態代理類,可以用CGLIB代理,對嗎?
對。
13.說說JDK代理和CGLIB代理的區別?
JDK代理要求目標物件必須有介面,CGLIB有沒有介面都行。
14.JDK生成的動態代理類和目標類都實現了相同的介面,對嗎?
對。動態代理類和目標類是兄弟關係。
15.CGLIB生成的動態代理類繼承了目標類,對嗎?
對。
16.CGLIB即可以代理有介面的類也可以代理無介面的類,對嗎?
對。
17.CGLIB可以代理目標類中的final方法,對嗎?
不對。
18.掃包的時候掃哪些包?
加了註解的包
19.如果要在一個方法上加宣告式事務,我們可以用哪個註解?
@Tranctional
20.如果用xml配置宣告式事務,分哪幾個步驟?
(1)配置事務管理器DataSourceTransactionManager
(2)配置切面和事務傳播方式
(3)配置切點
21.SqlSessionTemplate是執行緒安全的嗎?
是。
22.spring IOC可以配置抽象類嗎?
可以,但是要在標籤中加上abstract=true屬性
23.spring IOC可以配置介面嗎?
不可以。
24.舉例說一下什麼是切面?什麼是切點?什麼是通知?
25.AOP通知中,能夠獲得目標方法輸入的引數值嗎?如何獲取?
26.AOP通知中,通知的執行順序?
Before()
AfterReturning()
AfterThrowing()
After()
Around()
27、抽象類能被springIOC容器管理嗎?能,但是它的價值就是被其他bean繼承配置
28、介面能被springIOC容器管理嗎?不能
29、final類或者final方法能用cglib代理嗎?不能,即是不能切final方法的
30、環繞通知中的proceed()方法能夠獲得業務方法的返回值,它是通過呼叫業務方法獲得的返回值嗎?不是
31.說一下你對MVC模式的理解?
從三層結構上說。。。。
32.springmvc中的中央控制器名字叫什麼?
33.在哪裡配置springmvc的中央控制器?
34.如何返回json格式的資料?
35.@RequestMapping的作用是什麼?
36.springmvc中如何重定向?
return "reidrect:/studentlist";
return "reidrect:/studentlist.jsp";
37.用哪個註解指定格式化的日期?
@DatetimeFormate("yyyy-MM-dd")
38.@PathVariable是做什麼用的?
39.@RequestParam是做什麼用的?
40.@RequestMapping可以用在類上嗎?用在類上起什麼作用?
RequestMapping("/user")
RequestMapping("/list")
/user/list
41.什麼是Rest風格?舉個例子
/user/list/{id}
42.如何獲取Rest風格URL中的引數?
43.在spring框架下上傳用哪個類可以很方便的實現上傳?
44.什麼是國際化?
45.說說國際化的步驟?
建立每一個國家建立一個對應的properties檔案
springmvc.xml中配置國際化元件
在jsp裡面這樣用
46.什麼是攔截器?
實現了HandlerInterceptor的介面的類就是攔截器,如何使用?
springmvc.xml中配置攔截器,它有3個方法。
47.攔截器需要在xml中配置嗎?
48.攔截器的preHandle方法如果返回值為false,後面的攔截器還會執行嗎?
49.如果被攔截的方法出現異常,postHandle方法會執行嗎?
50.多個攔截器共同攔截同一個url,在沒有出現異常preHandle也沒有
返回false的情況下,各個攔截器執行的順序是什麼?
52.如何指定一個RequestMapping的請求方式?例如POST或者GET?
53.說一下ModelAndView的作用?
54.什麼是檢視解析器?
55.在springmvc中,我們可以如何處理異常?
1)mvc.xml中配置異常解析器
2)@HandlerException
56.說一下你知道的mvc元件,越多越好,各個之間的關係
57.攔截器跟過濾器有區別嗎?知道哪些區別
58.
59.Service可以訪問Controller嗎?在Service中可以注入Controller嗎?
60.在Rest風格下js,css,image等無法訪問,如何解決?
61.springmvc下的controller是在什麼時候被例項化的?
62.容器在一啟動的時候就把controller中的requestmapping資訊讀到記憶體了麼?
63.檢視解析器除了解析jsp還能解析其他檢視嗎?
64.如果一個service實現了介面,我們在controller中注入它時,應該注入介面
還是實現類?
1)如果service中的方法被切。。。
2)如果service中的方法沒被切。。。
為了安全起見,任何情況下都注入介面。
65.簡述springmvc專案的框架搭建過程?
1)建立專案
2)匯入jar包
3)配置web.xml
4)配置mvc.xml,spring.xml
5)建立包
66.簡述springmvc的請求、應答過程?
客戶端發起請求——DispatcherServlet——HandlerMapping——Controller
——執行Controller方法——ModleAndView——檢視解析器
——找到jsp——顯示結果
備註:HandlerMapping裡面存放著url和controller的對映
67.在請求controller時瀏覽器報404錯誤,分析一下可能的原因?
1)controller沒掃
2)controller裡面的請求路徑寫錯了
3)返回的檢視沒有在解析器的字首、字尾中
4)如果是靜態資源,可能沒有指定
68.springmvc能夠脫離spring容器單獨執行嗎?
69.什麼是非同步?
幾個方法可以同時執行,就是非同步。幾個方法按照先後順序執行,就是同步。
70.你知道ajax技術嗎?它離開了瀏覽器能執行嗎?底層用的是哪個物件?
底層用XMLHttpRequest物件,它有兩個作用:第一,發起ajax請求 第二,接收伺服器端的返回值。
獲取更多資源請關注微信公眾號:AKA程式