database–>Entity.java–>mapper.xml–>Mapper.java–>Dao.java–>DaoImpl.java–>Service.java–>ServiceImpl.java–>Controller.java–>login.jsp
根據需要建立資料庫、資料表、字段;
根據表中字段建立實體類;
在Mapper中實作對資料庫的增删改查操作;
設計DAO(data access object)資料操作對象接口;
設計Service,通過DAO擷取對象,然後進行業務邏輯實作;
設計控制層Controller,用于從頁面擷取請求,調用Service處理并将處理結果傳回給頁面。
根據上面所列,下面就按照這個流程進行設計。
使用MySQL資料庫:
建立資料庫 DB_TEST
建立使用者表 T_USER
插入一條使用者資訊
UserMapper接口,定義通過使用者名擷取使用者對象的方法
usermapper.xml,用于操作資料庫,實作接口中的方法
DAO接口 UserDao.java
DAO接口實作 UserDaoImpl.java
@Repository對應資料通路層Bean @Repository(value=”userDao”)注解是告訴Spring,讓Spring建立一個名字叫“userDao”的UserDaoImpl執行個體。 當Service需要使用Spring建立的名為“userDao”的UserDaoImpl執行個體時, 就可以使用@Resource(name =”userDao”)注解告訴Spring,Spring把建立好的userDao注入給Service即可。
業務層接口 UserService.java
業務層接口實作類 UserServiceImpl.java
@Service對應的是業務層Bean 這樣當Action需要使用UserServiceImpl的的執行個體時,就可以由Spring建立好的”userService”注入給Action:在Action隻需要聲明一個名字叫“userService”的變量來接收由Spring注入的”userService”即可
@Controller對應表現層的Bean,也就是Action 注意:如果@Controller不指定其value【@Controller】,則預設的bean名字為這個類的類名首字母小寫,如果指定value【@Controller(value=”UserAction”)】或者【@Controller(“UserAction”)】,則使用value作為bean的名字。
@Scope(“prototype”)表示将Action的範圍聲明為原型 可以利用容器的scope=”prototype”來保證每一個請求有一個單獨的Action來處理,避免struts中Action的線程安全問題。 spring 預設scope 是單例模式(scope=”singleton”),這樣隻會建立一個Action對象,每次通路都是同一Action對象,資料不安全。 struts2 是要求每次次通路都對應不同的Action,scope=”prototype” 可以保證當有請求的時候都建立一個Action對象
@RequestMapping(“/user”) RequestMapping是一個用來處理請求位址映射的注解,可用于類或方法上。用于類上,表示類中的所有響應請求的方法都是以該位址作為父路徑。
本項目中,該Controller類RequestMapping(”user”) 該Controller類的login方法RequestMapping(”login”) 是以登入頁面中使用者登入的 action=”/ssm/user/login”
這個檔案是Spring公共配置檔案,下面分塊進行解析。
資料庫配置檔案database.properties的引入
資料庫連接配接池的配置
資料庫連接配接池可以讓伺服器預先與資料庫建立部分連接配接,存入記憶體中,以減少連接配接資料庫的耗時操作。 此處定義使用C3P0連接配接池的資料源。
自動掃描配置
使用< context:component-scan>标簽後,spring可以自動去掃描base-pack下面或者子包下面的java檔案,如果掃描到有@Component @Controller@Service等這些注解的類,則把這些類注冊為bean
內建Mybatis
SqlSessionFactoryBean是一個工廠bean,它的作用就是解析配置(資料源、别名等)。
Mapper掃描配置
dao需要配置,如果數量大不适合一個個配置,需要使用mapper自動掃描來批量進行配置。
Mybatis事務管理配置
此處省略,入門階段暫不考慮這麼高端的日志用法。
通過使用别名,可以縮短類名的長度,但是隻能在配置檔案中使用。
此配置檔案注釋比較清楚,就不單獨解析了。
之前掃描專門忽略了Controller,在此處掃描。 例如在Controller類中常有類似<code>return welcome</code>這樣的語句 其實完整的應該是<code>return WEB-INF/pages/welcome.jsp</code>