1. 程式人生 > >spring和springmvc的基礎知識點

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程式