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中 必须要配置的内容
(1) 开启注解驱动
<mvc:annotation-driven></mvc:annotation-driven>
(2) 扫描controller所在的包
<context:component-scan base-package="com.neuedu.controller"></context:component-scan>
希望被扫描到的类加@controller注解 希望被加载到handlerMapping中的方法 需要加 @RequestMapping注解
springmvc会把 requestMapping中的地址 当做 key 下面的方法 当做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>
拿到返回值后会交给视图解析器去转发页面 例如 返回值如果是 list 则 把前缀放在返回值的前面 后缀放在返回值的后面形成一个jsp页面的路径 解析器再去转发这个路径
/WEB-INF/pages/list.jsp
如果是重定向 返回值前面要加 redirect: 浏览器地址
如果方法上加上了 @ResponseBody注解 代表 返回值会不经过视图解析器 直接通过response输出流输出到浏览器上
SpringIOC 部分
管理对象的 bean 需要把要进行组装的对象放进IOC容器中
1 需要一个springIOC的配置文件 作用 是把要管理的bean配置到该文件中 applicationContext.xml
2 在文件下配置要管理的bean
(1) 配置bean节点
<bean id="自己起名(不可以重复)" class="类的完全限定名">
<property name="set方法去掉set第一个字母变小写" value="固定" ref="bean节点的id"></property>
</bean>
(2) 扫描包+注解 方式和springmvc的controller配置方式相同
<context:component-scan base-package="要扫描的包"></context:component-scan>
在被扫描到的包上 找类(找有注解的类,一共有4个注解都可以使用)
当类与类之间有依赖关系的时候 (需要组装的时候 那么在被组装的类中的属性上 加@Resource注解)
加了注解后 该属性的值 就会在IOC容器中 发生依赖注入
mybatis 部分
1 导包
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>