常見的註解:spring
@controller
控制器(注入服務)@service
服務(注入dao)@repository
dao(實現dao訪問)@component
(把普通pojo實例化到spring容器中,至關於配置文件中的<bean id="" class=""/>)@Component,@Service,@Controller,@Repository註解的類,並把這些類歸入進spring容器中管理。 編程
下面寫這個是引入component的掃描組件 框架
<context:component-scan base-package=」com.mmnc」>
其中base-package爲須要掃描的包(含全部子包)工具
@Service public class UserServiceImpl implements UserService { }
@Repository public class UserDaoImpl implements UserDao { }
getBean的默認名稱是類名(頭字母小寫),若是想自定義,能夠 @Service(「*」)
這樣來指定,這種bean默認是單例的,若是想改變,可使用@Service(「beanName」)
@Scope(「prototype」)來改變。可使用如下方式指定初始化方法和銷燬方法(方法名任意): @PostConstruct public void init() { } 單元測試
SpringBoot未編寫完代碼的狀況下可否先用main方法測試Repository類?測試
一、不能夠,由於SpringBoot使用啓動類啓動的,若是使用main方法,啓動類未啓動就沒法得到註解,也就沒法得到對象實例等
二、但能夠用JUnit(Java語言的單元測試框架)來測:
多數Java的開發環境都已經集成了JUnit做爲單元測試的工具prototype
極限編程:
要求在編寫代碼以前先寫測試,這樣能夠強制你在寫代碼以前好好的思考代碼(方法)的功能和邏輯,不然編寫的代碼很不穩定,那麼你須要同時維護測試代碼和實際代碼,這個工做量就會大大增長。所以在極限編程中,基本過程是這樣的:構思-> 編寫測試代碼-> 編寫代碼-> 測試,並且編寫測試和編寫代碼都是增量式的,寫一點測一點,在編寫之後的代碼中若是發現問題能夠較快的追蹤到問題的緣由,減少迴歸錯誤的糾錯難度。code