SpringMVC部分
1? 引入Jar
spring-context
spring-webmvc
2? web.xml中 配置 核心攔截器? DispatchServlet
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>namespace</param-name>
<param-value>springmvc</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
注意:load-on-startup 必須在最后一個位置上
3 在WEB-INF下 就必須有一個 springmvc的配置文件了? 文件名? 如果有 namespace 則用? namespace的值? 如果沒有? 則默認為 servlet-name+"-servlet"
springmvc中 必須要配置的內(nèi)容
(1) 開啟注解驅(qū)動
<mvc:annotation-driven></mvc:annotation-driven>
(2) 掃描controller所在的包
<context:component-scan base-package="com.neuedu.controller"></context:component-scan>
希望被掃描到的類加@controller注解 希望被加載到handlerMapping中的方法 需要加 @RequestMapping注解
? springmvc會把 requestMapping中的地址 當(dāng)做 key? 下面的方法 當(dāng)做value 存入 handlerMapping中
? @RequestMapping注解也可以配置在類上? 如果配置在類上 那么方法中所有的RequestMapping在訪問的時候必須以類上的@RequestMapping為前綴
(3) 配置視圖解析器
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" ></property>
<property name="prefix" value="/WEB-INF/pages/"></property>
<property name="suffix" value=".jsp"></property>
</bean>
拿到返回值后會交給視圖解析器去轉(zhuǎn)發(fā)頁面 例如 返回值如果是 list? 則? 把前綴放在返回值的前面? 后綴放在返回值的后面形成一個jsp頁面的路徑 解析器再去轉(zhuǎn)發(fā)這個路徑
/WEB-INF/pages/list.jsp
如果是重定向? 返回值前面要加 redirect: 瀏覽器地址
如果方法上加上了 @ResponseBody注解? 代表 返回值會不經(jīng)過視圖解析器? 直接通過response輸出流輸出到瀏覽器上
SpringIOC 部分
管理對象的 bean? 需要把要進行組裝的對象放進IOC容器中
1 需要一個springIOC的配置文件 作用? 是把要管理的bean配置到該文件中? applicationContext.xml
2 在文件下配置要管理的bean
(1) 配置bean節(jié)點?
<bean id="自己起名(不可以重復(fù))" class="類的完全限定名">
<property name="set方法去掉set第一個字母變小寫" value="固定"? ref="bean節(jié)點的id"></property>
</bean>
(2) 掃描包+注解? 方式和springmvc的controller配置方式相同
<context:component-scan base-package="要掃描的包"></context:component-scan>
在被掃描到的包上 找類(找有注解的類,一共有4個注解都可以使用)
當(dāng)類與類之間有依賴關(guān)系的時候 (需要組裝的時候? 那么在被組裝的類中的屬性上 加@Resource注解)
加了注解后? 該屬性的值 就會在IOC容器中 發(fā)生依賴注入
mybatis 部分
1 導(dǎo)包
mybatis
mybatis-spring
mysql
spring-orm
druid
只要把連接池? SqlSessionFactory配到IOC容器后? 會自動進行集成和注入
2 spring配置文件中? 配置連接池
<bean id="datasource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/db1?useUnicode=true&characterEncoding=utf8"></property>
<property name="username" value="root"></property>
<property name="password" value="123456"></property>
<property name="minIdle" value="5"></property>
<property name="maxActive" value="20"></property>
</bean>
3? spring配置文件中? 配置SqlSessionFactory
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="datasource"></property>
<property name="typeAliasesPackage" value="com.neuedu.pojo"></property>
</bean>
4? 掃描mapper(dao接口)包
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.neuedu.dao"></property>
</bean>