现在的很多项目都是SSM类型的。SpringMVC、Spring、Mybatis
所以,我们需要的先导入所需要的jar包
我这里是通过maven导入的
<!--mybatis框架-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<!--缓存机制-->
<dependency>
<groupId>org.mybatis.caches</groupId>
<artifactId>mybatis-ehcache</artifactId>
<version>1.1.0</version>
</dependency>
<!--mybatis分页插件-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.8</version>
</dependency>
<!--Spring框架-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.1.1.RELEASE</version>
</dependency>
<!--mybatis-spring的桥接-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.2</version>
</dependency>
<!--用于aop界面插件-->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.9.2</version>
</dependency>
<!--aop-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>5.1.1.RELEASE</version>
</dependency>
<!--orm 包-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>5.1.1.RELEASE</version>
</dependency>
<!--spring mvc依赖包-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.1.2.RELEASE</version>
</dependency>
<!--mysql数据库链接-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.16</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
<!--数据库链接druid包-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>
首先,我们需要创建一个Spring的配置文件 applicationContext.xml,然后我们进行配置
<!--告诉ioc通过什么地址去访问被注解的类,实例化创建对象--> <context:component-scan base-package="org.li" > <!--让srping扫描除了controller的包以外的包,--> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"></context:exclude-filter> </context:component-scan>
这个是用于注解扫描
他只扫描base-package对应的包下的
* spring提供了4个用于加入ioc容器的注解,分别是 * 表现层:@ Controller * 业务层:@ Service * 持久层: @Repositor * 基本注解:@ Compoment
4个注解
接下来需要配置一个数据库连接池
<!--配置数据库链接信息--> <bean id="ds" class="com.alibaba.druid.pool.DruidDataSource"> <!--配置基本信息 基本属性 driverClassName、url、user、password --> <property name="driverClassName" value="com.mysql.jdbc.Driver"></property> <property name="url" value="jdbc:mysql://localhost:3306/20181118test?usecode=true&characterEncoding=utf-8&useSSL=false"></property> <property name="username" value="root"></property> <property name="password" value="123123"></property> <!--配置链接信息--> <!-- 配置初始化大小、最小、最大 --> <property name="initialSize" value="40"></property> <property name="minIdle" value="20"></property> <property name="maxActive" value="200"></property> </bean>
接下来需要配置mybatis的工厂了
<!--配置mybatis工厂--> <bean id="sessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean"> <!--配置数据源--> <property name="dataSource" ref="ds"></property> <!-- 配置mybatis全局配置文件 --> <property name="configLocation" value="classpath:mybatis-config.xml"/> <!--配置别名--> <property name="typeAliasesPackage" value="org.li.entity"></property> </bean>
最后我们整合Spring和mybatis
<!--整合spring和mybatis--> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <!--指定ioc容器中的mybatis工厂名称--> <property name="sqlSessionFactoryBeanName" value="sessionFactoryBean"></property> <!--mapper所在的包--> <property name="basePackage" value="org.li.mapper"></property> </bean>
再把mybatis的接口扫入spring
<!--自动扫描生成代理对象--> <aop:aspectj-autoproxy></aop:aspectj-autoproxy>
@Autowired注解可以扫描生成代理对象
事务
/* @Before前置通知 @After后置通知 @AfterReturning返回通知 @AfterThrowing异常通知 @Around环绕通知 */
<!--开启事务管理器--> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <!--配置连接池--> <property name="dataSource" ref="ds"></property> </bean> <!--配置事务--> <!--<aop:config>--> <!--<aop:pointcut id="pc" expression="execution(* org.li.service.*.*(..) )"></aop:pointcut>--> <!--<aop:advisor advice-ref="advices" pointcut-ref="pc"></aop:advisor>--> <!--</aop:config>--> <tx:annotation-driven transaction-manager="transactionManager"></tx:annotation-driven>
整体大概是这样 注:去除头部
<!--告诉ioc通过什么地址去访问被注解的类,实例化创建对象-->
<context:component-scan base-package="org.li" >
<!--让srping扫描除了controller的包以外的包,-->
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"></context:exclude-filter>
</context:component-scan>
<!--数据库链接池-->
<!--配置数据库链接信息-->
<bean id="ds" class="com.alibaba.druid.pool.DruidDataSource">
<!--配置基本信息
基本属性 driverClassName、url、user、password
-->
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url"
value="jdbc:mysql://localhost:3306/20181118test?usecode=true&characterEncoding=utf-8&useSSL=false"></property>
<property name="username" value="root"></property>
<property name="password" value="123123"></property>
<!--配置链接信息-->
<!-- 配置初始化大小、最小、最大 -->
<property name="initialSize" value="40"></property>
<property name="minIdle" value="20"></property>
<property name="maxActive" value="200"></property>
</bean>
<!--配置mybatis工厂-->
<bean id="sessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
<!--配置数据源-->
<property name="dataSource" ref="ds"></property>
<!-- 配置mybatis全局配置文件 -->
<property name="configLocation" value="classpath:mybatis-config.xml"/>
<!--配置别名-->
<property name="typeAliasesPackage" value="org.li.entity"></property>
</bean>
<!--整合spring和mybatis-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!--指定ioc容器中的mybatis工厂名称-->
<property name="sqlSessionFactoryBeanName" value="sessionFactoryBean"></property>
<!--mapper所在的包-->
<property name="basePackage" value="org.li.mapper"></property>
</bean>
<!--自动扫描生成代理对象-->
<aop:aspectj-autoproxy></aop:aspectj-autoproxy>
<!--开启事务管理器-->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<!--配置连接池-->
<property name="dataSource" ref="ds"></property>
</bean>
<tx:annotation-driven transaction-manager="transactionManager"></tx:annotation-driven>
</beans>
接下来配置mybatis-config.xml
<configuration>
<settings>
<!--驼峰效果-->
<setting name="mapUnderscoreToCamelCase" value="true"/>
<!--缓存-->
<setting name="cacheEnabled" value="true"></setting>
<!--日志-->
<setting name="logImpl" value="LOG4J"></setting>
</settings>
<plugins>
<!--注册分页信息-->
<!--使用PageInterceptor-->
<plugin interceptor="com.github.pagehelper.PageInterceptor">
</plugin>
</plugins>
</configuration>
最后我们配置下springmvc.xml
<!--只扫controller-->
<context:component-scan base-package="org.li" use-default-filters="false">
<context:include-filter type="annotation"
expression="org.springframework.stereotype.Controller"></context:include-filter>
</context:component-scan>
<!--配置视图解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!--前缀-->
<property name="prefix" value="/WEB-INF/pages/"></property>
<!--结尾-->
<property name="suffix" value=".jsp"></property>
</bean>
<!--order越低的视图解析器越先执行-->
<bean class="org.springframework.web.servlet.view.BeanNameViewResolver">
<property name="order" value="100"></property>
</bean>
<!-- 扩充了注解驱动,可以将请求参数绑定到控制器参数 -->
<mvc:annotation-driven/>
<mvc:default-servlet-handler></mvc:default-servlet-handler>
<!-- 静态资源处理 css js imgs -->
<mvc:resources mapping="/static/**" location="/WEB-INF/static/"/>
</beans>
整合之后我们就可以对项目进行操作了。