Spring学习-整合Spring、SpringMVC、Mybati)

 

现在的很多项目都是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&amp;characterEncoding=utf-8&amp;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&amp;characterEncoding=utf-8&amp;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>

整合之后我们就可以对项目进行操作了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值