天天看點

使用SSM架構搭建Web伺服器實作登入功能(Spring+SpringMVC+Mybatis)使用SSM架構搭建Web伺服器實作登入功能(Spring+SpringMVC+Mybatis)

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>
上一篇: golang切片
下一篇: 切片