springmvc mybatis 整合
1. 所需要Jar包.
//Spring3.0.1包
org.springframework.web-3.0.1 系列
//公共包
slf4j-api-1.5.6.jar slf4j-log4j12-1.5.6.jar log4j-1.2.13.jar
commons-logging-1.1.1.jar asm-3.1.jar cglib-2.2.jar
//mybatis與Spring的整合所需的包
mybatis-3.0.5.jar
aopalliance-1.0.jar
mybatis-spring-1.0.1.jar
mybatis-generator-core-1.3.1.jar(mybatis程式碼生成器包)
//jdbc driven
mysql-connector-java-3.1.6-bin.jar
//JSR驗證-Hibernate validate 4.1
hibernate-validator-4.1.0.Final.jar
validation-api-1.0.0.GA.jar
//Spring Json 支援包
jackson-all-1.8.1.jar
2. web.xml配置
Servlet配置
org.springframework.web.servlet.DispatcherServlet
init-param配置servlet初始化檔案.
以及servlet-mapping配置.
應用路徑配置
webAppRootKey
Log4j配置
Log4jConfigLocation
Log4jRefreshInterval
Spring上下文配置
contextConfigLocation
Spring字符集過濾器配置
org.springframework.web.filter.CharacterEncodingFilter
Spring監聽器配置
org.springframework.web.context.ContextLoaderListener
log4j監聽器配置
org.springframework.web.util.Log4jConfigListener
3. spring mvc - servlet.xml配置
啟動mvc註解驅動
<mvc:annotation-driven/>
元件scanner主要是自動去注入指定包裡的物件
<context:component-scan
base-package="com.los.mvc.controller"/>
ViewResolver & View 對映關係
InternalResourceViewResolver 基於resource對jsp/jstl的支援
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>
<!-- InternalResourceViewResolver viewClass預設值就是JstlView -->
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>
</bean>
自定義攔截器配置
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/json*"/>
<bean class="com.los.mvc.interceptor.MyInterceptor"></bean>
</mvc:interceptor>
</mvc:interceptors>
國際化配置
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basename" value="message"></property>
</bean>
4. Spring上下文 -- applicationContext.xml 配置
支援註解
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"></bean>
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping"></bean>
<import resource="service.xml"/>
<import resource="dao.xml"/>
<import resource="orm.xml"/>
service.xml dao.xml 配置@service 和 @Repository
5. Mybatis3.0.5-Spring 整合 -- orm.xml
DataSource配置
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mvc"/>
<property name="username" value="root" />
<property name="password" value="root" />
</bean>
註冊事務管理器(Mybatis將事務轉交給Spring來管理)
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
SqlSessionFactory配置(Mybatis核心是sqlSessionFactory來獲取orm處理物件, dataSource, mapperLocations配置mybaits自動生成的xml檔案.就是注入對映關係.)
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="mapperLocations" value="classpath:/com/los/mvc/mapper/*.xml" />
</bean>
MapperScanner配置.自動去搜尋mapper裡的物件,並注入.
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.los.mvc.dao" />
</bean>
啟動Spring註解事務
<tx:annotation-driven/>
6. mybatis自動生成器配置 -- generatorConfig.xml
sqlMapGenerator sqlMpper.xml生成器
javaClientGenerator ModelDao生成器
javaModelGenerator Model生成器
com.los.util.MBG.java 執行會自動生成mybatis程式碼.然後再配置orm.xml
7. Controller層配置
類註解
@Controller
@RequestMapping("/json")為訪問該層的路徑.
方法註解
@RequestMapping(method = RequestMethod.GET) 只有get方法才能訪問.
@ResponseBody 自動將返回的封裝成json,方法返回值必須是map<String,?>型別.
@RequestMapping(value="/doLogin") value=”doLogin”為訪問該方法的handler mapping
return "login/login";會透過ViewResolver找到對應的view
return "redirect:/user/toRegister.html";為spring-mvc的重定向.
@InitBinder()為繫結器,可以為request傳來的資料進行資料型別轉換.
資料自動驗證
方法中引數需要有後面的兩個(@Valid User user,BindingResult result).@Valid的支援標準是JSR,Hibernate Validate 4是對該標準比較好的實現.需要在Model類中配置驗證的註解.判斷驗證是否正確透過result.hasErrors()或者result.hasFieldErrors()來判斷,透過result.getAllErrors()或者result.getFieldErrors()來獲取Errors然後遍歷Errors獲取相關想要的資訊,例如Error.getDeafaultMessage(),這個是獲取錯誤資訊.具體的錯誤驗證機制還地在Model類中配置.
屬性註解
@Autowired 會為該屬性自動注入bean,預設方式是byType.也可以用@Resource這個註解預設是byName.
8. Service層配置.(業務層)
類註解
@Service 為@Component的子註解,分工更明細.
@Transactional 可以為該業務類宣告一個全類的事務.也可以將事務寫在方法上.根據不同的需要.
方法註解
@Transactional(readOnly = true)
@Transactional(readOnly = false, propagation = Propagation.REQUIRED, rollbackFor = Exception.class) 類的事務宣告,可以設定隔離級別和傳播屬性,以及要回滾的異常名或者異常類,不需要回滾的異常名或者異常類.異常通常丟擲給controller層來處理
屬性註解
@Autowired @Resource
9. Repository層配置.(持久層DaoImpl)
類註解
@Repository 為@Component的子註解,意為持久層,分工更明細.一般不在這層處理事務.
10.Entry層配置(Model層)
類註解
@Entry
驗證註解,常用的有:
@NotEmpty
@NotNull
@Size(min=2,max=10,message=”xx必須在{min}和{max}之間”)
@Email
@DecimalMax
@AssertFalse @AssertTrue
@Null
@Valid
@URL(protocol=,host=, port=,regexp=, flags=)
一般情況下屬性或者方法可以放多個約束註解,hibernate validate會以隨機的順序去驗證這些約束.所以多個註解約束會有可能同一個屬性返回多個message.所以有時候需要只返回一條message,則需要使用驗證組Groups來達成.組別序列可以把一系列的組別按照一定的順序排列在一起,然後逐個驗證,只要有一個組別驗證失敗,就不繼續驗證剩餘的組別。
@GroupSequence({User.class,GroupB.class,GroupC.class})驗證組的順序,約束裡不指定group的為預設的User.class組.
約束組放在類前,User.class為預設的約束組,GroupB,GroupC為空的介面.寫在User外同個java檔案下.
@NotEmpty(message="密碼不能為空")
@Size(min=4,max=20,message="密碼長度必須在{min}-{max}範圍內",groups = GroupB.class)
如果@NotEmpty驗證失敗了,就不會繼續驗證@Size
java企業級通用許可權安全框架原始碼 SpringMVC mybatis or hibernate+ehcache shiro druid
bootstrap HTML5
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30372520/viewspace-1754110/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SpringMVC整合MybatisSpringMVCMyBatis
- MyBatis(九) 整合Spring、整合SpringMVCMyBatisSpringMVC
- SSM——Spring整合SpringMVC,MyBatisSSMSpringMVCMyBatis
- SSM(SpringMVC + Spring + Mybatis)整合SSMSpringMVCMyBatis
- SSM整合(Spring、SpringMVC、Mybatis)SSMSpringMVCMyBatis
- Spring+SpringMVC+MyBatis框架整合SpringMVCMyBatis框架
- Spring+SpringMVC+MyBatis的整合SpringMVCMyBatis
- Spring+SpringMVC+Mybatis框架整合搭建教程SpringMVCMyBatis框架
- Spring+SpringMvc+Mybatis整合注意事項SpringMVCMyBatis
- Spring+SpringMVC+MyBatis+easyUI整合最佳化SpringMVCMyBatisUI
- Maven整合SSM框架(maven+spring+springmvc+mybatis)MavenSSM框架SpringMVCMyBatis
- mybatis和springmvc整合遇到的問題小結MyBatisSpringMVC
- SSM(Spring-MyBatis-SpringMVC)框架整合【完整版】SSMMyBatisSpringMVC框架
- springmvc+mybatis整合cms內容釋出平臺SpringMVCMyBatis
- SSM框架——詳細整合教程(Spring+SpringMVC+MyBatis)SSM框架SpringMVCMyBatis
- SSM框架——具體整合教程(Spring+SpringMVC+MyBatis)SSM框架SpringMVCMyBatis
- Spring+SpringMVC+MyBatis整合(easyUI、AdminLte3)SpringMVCMyBatisUI
- java框架整合Springmvc+mybatis+shiro+lucene+rest+webservice+mavenJava框架SpringMVCMyBatisRESTWebMaven
- Spring+SpringMvc+Mybatis框架整合搭建教程二(依賴配置及框架整合)SpringMVCMyBatis框架
- springmvc+mybatisSpringMVCMyBatis
- Spring+SpringMvc+Mybatis框架整合搭建教程三(框架整合測試程式開發)SpringMVCMyBatis框架
- Spring+SpringMVC+MyBatis+easyUI整合進階篇(十二)Spring整合Redis快取SpringMVCMyBatisUIRedis快取
- SSM三大框架整合詳細教程(Spring+SpringMVC+MyBatis)SSM框架SpringMVCMyBatis
- Spring+SpringMvc+Mybatis框架整合搭建教程一(專案建立)SpringMVCMyBatis框架
- Spring+SpringMVC+MyBatis+easyUI整合基礎篇(十)SVN搭建SpringMVCMyBatisUI
- Spring+SpringMVC+MyBatis+easyUI整合基礎篇(九)版本控制SpringMVCMyBatisUI
- springmvc + mybatis 整合 cms 內容釋出平臺 ios androidSpringMVCMyBatisiOSAndroid
- 實現UC瀏覽器文章功能 springmvc+mybatis整合cms瀏覽器SpringMVCMyBatis
- SpringMVC mybatis SSM 整合程式碼生成器 java redis shiro ehcacheSpringMVCMyBatisSSMJavaRedis
- [Android]後端之路--整合SSM(Spring+SpringMVC+MyBatis)框架(2)Android後端SSMSpringMVCMyBatis框架
- 最容易的ssm三大框架整合(spring+springmvc+mybatis)教程SSM框架SpringMVCMyBatis
- springmvc整合elasticsearchSpringMVCElasticsearch
- (三)springmvc+mybatis+dubbo+zookeeper分散式架構 整合 - maven模組規劃SpringMVCMyBatis分散式架構Maven
- Spring+SpringMVC+MyBatis+easyUI整合基礎篇(十二)階段總結SpringMVCMyBatisUI
- 八、SpringMVC——ssm整合SpringMVCSSM
- SpringMVC-整合SSMSpringMVCSSM
- springMVC整合shiroSpringMVC
- (二)springmvc+mybatis+dubbo+zookeeper分散式架構 整合 - 平臺功能導圖SpringMVCMyBatis分散式架構