zoukankan      html  css  js  c++  java
  • 从web到搭建ssm环境

    1:我先建立了个web项目,

    (1)在pom.xml中添加了如下

    <dependencies>
            <!-- Spring -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-orm</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-test</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context-support</artifactId>
                <version>${spring.version}</version>
            </dependency>
    </dependencies>

    (2)在web.xml中添加了

    <filter>
            <filter-name>encoding</filter-name>
            <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
            <init-param>
                <param-name>encoding</param-name>
                <param-value>UTF-8</param-value>
            </init-param>
        </filter>
        <filter-mapping>
            <filter-name>encoding</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>

    就报错,说是项目不认识filter过滤器,项目也一直出现小红叉,网上说右键点击项目,然后依照https://blog.csdn.net/qq_25313187/article/details/75041965来做就可以了。但是我点击后并未出现maven  denpendenciies.....网上说我右键项目名,点击maven  --》update object就可以了,我尝试后依然无果,最终才知道,原来我在pom.xml中需要添加<properties>来配置  <version>${spring.version}</version>中的属性·。

    2:配好过滤器,我开始写了个servert的映射,配置了一个最简单的servlet的class,run as后项目是可以运行的,于是我在web.xml中配置分发器

    <servlet>
            <servlet-name>springmvc</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <init-param>
                <param-name>contextConfigLocation</param-name>
                <param-value>classpath:spring-mvc.xml</param-value>
            </init-param>
            <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>springmvc</servlet-name>
            <url-pattern>*.wth</url-pattern>
        </servlet-mapping>

    发现报错,说未从ServletContext resource中识别到 [/WEB-INF/springmvc-servlet.xml],网上查说是因为需要把web.xml和applicationContext.xml两个文件放在一起,那么我就把applicationContext.xml用参数加了进来,https://blog.csdn.net/zheng911209/article/details/51242525,init是不行的,必须context中做。。。。。未完待续。。。。。。。。。。。。。。。。。。。。。。以上以后继续研究。。。。。。。。。。。。。。。。。

    直接从网上找了搭建ssm的教程。首先要建立一个maven项目,

     建立后发现没有web.xml文件,于是通过以下方式可自动创建,右击项目名字--》propertis--》Project Facets----》,再选中Dynamic Web Modules,步骤如下所示,点击ok,点击apply,之后取消掉Dynamic Web Modules前面的对号,然后再点击ok即可。

    maven搭建好了,就要导入ssm的jar包,数据库连接池,驱动,jstl,servlet api需剔除(即添加scope显示provided),junit(单元测试),以及其他扩展功能所需的jar包了

    在百度输入maven rep(或者直接访问该网址http://mvnrepository.com/),然后输入spring需引入spring  web  mvc,spring jdbc,spring  aspects。

    mybatis需引入mybatis,spring mybatis(这是mybatis和spring的整合)

    数据库连接池(c3p0). ,mysql的驱动(MySQL connector)

    2:jar包导入完后,可以导入bootstrap,写一些漂亮的样式。官网写bootstrap,http://www.bootcss.com/

    3:在web。xml中配置spring,springmvc,指定编码,

    启动spring的容器

    <context-param>

           <param-name>contextConfigLocation</param-name>

          <param-value>classpath:applicationContext.xml</param-value>

    </context-param>

    <listener>

            <listener-class>org.springframework.web.context.ContextConfigLocation</listener-class>

    </listener>

    springmvc要配置,其中   <init-param>指定springmvc相关的xml文件,如果不想要<init-param>,可直接在classpath下放名字为(servlet的name-servert).xml文件即可。如下即springmvc-servlet.xml

    <servlet>
            <servlet-name>springmvc</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <init-param>
                <param-name>contextConfigLocation</param-name>
                <param-value>classpath:spring-mvc.xml</param-value>
            </init-param>
            <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>springmvc</servlet-name>
            <url-pattern>*.wts</url-pattern>
        </servlet-mapping>

    编码过滤器

    <filter>
            <filter-name>encoding</filter-name>
            <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
            <init-param>
                <param-name>encoding</param-name>
                <param-value>UTF-8</param-value>
            </init-param>
        </filter>
        <filter-mapping>
            <filter-name>encoding</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
        使用restful风格的uri,将页面普通的post请求转为指定的delete或者是put

    <filter>

        <filter-name>HiddenHttpMethodFilter</filter-name>

       <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>

    </filter>

    <filter-mapping>

         <filter-name>HiddenHttpMethodFilter</filter-name>

        <url-pattern>/*</url-pattern>

    </filter-mapping>

    <filter>
            <filter-name>HttpPutFormContentFilter</filter-name>
            <filter-class>org.springframework.web.filter.HttpPutFormContentFilter</filter-class>
        </filter>

    <filter-mapping>
            <filter-name>HttpPutFormContentFilter</filter-name>
            <url-pattern>/*</url-pattern>
    </filter-mapping>
       

    4:配置springmvc的xml文件

    (如果不用maven方式则需要导入以下jar包,

    https://www.cnblogs.com/mibloom/p/9871652.html

     

    <beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">

    </beans>

    这句代表只扫描controller包<context:component-scan base-package="cn.wtsr.core.web.controller" />

     包含网站跳转逻辑的控制,配置,假设src/main/java下有很多的包,com.wth.cn.xxx,utils、controller、dao、bean、service、test,

    默认是扫描所有的,配置这个use-default-filters="false"和<context:include-filter我们只扫描controller

    <context:component-scan base-package="com.wth" use-default-filters="false" />

    <!--只扫描控制器>

    <context:include-filter type="annotation"  expression="org.springframework.stereotype.Controller">

    <!-配置视图解析器,方便页面返回->

    <!-- 模型视图解析 -->
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
            <property name="prefix" value="/"></property>
            <property name="suffix" value=".jsp"></property>
        </bean>

    两个标准配置就是如下:

    《!---将springmvc不能处理的请求交给tomcat----》(springmvc就可以处理动态静态资源了)

    <mvc:default-servlet-handler/>

    《!---能支持springmvc更高级的一些功能,JSR303校验,快捷的ajax,映射动态请求--------》

    <mvc:annotation-driven/>

    5:配置spring的xml(spring的配置文件主要是配置和业务逻辑有关的)

    (1)<!--数据源,事务控制,xxx-->

    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
            <property name="driverClassName" value="${jdbc.driverClass}" />
            <property name="url" value="${jdbc.url}" />
            <property name="username" value="${jdbc.username}" />
            <property name="password" value="${jdbc.password}" />
        </bean>
        引入外部的properties文件

    <context:property-placeholder   location="classpath:数据库初始化参数的properties文件">

    (2) 配置和mybatis的整合

    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

            <!---配置数据源----->
            <property name="dataSource" ref="dataSource" />
      <!--------- 配置mapper文件的路径------------->
            <property name="mapperLocations" value="classpath:cn/wtsr/core/web/mapper/*.xml"/>(此路径根据项目路径写,不固定)
            <property name="typeAliasesPackage" value="cn.wtsr.core.web.dao,cn.wtsr.core.web.mapper"/>

      <!----------指定mybatis要用到的全局变量------------>

      <property name="configLocation" value="classpath:mybatis-config.xml">
        </bean>

    (3)配置扫描器,将mybatis接口的实现加入到ioc容器中

    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">

    <!-------扫描所有dao接口的实现,加入到ioc容器中------>
            <property name="basePackage" value="cn.wtsr.core.web.dao" />
        </bean>

    (4)事务控制的配置

    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <property name="dataSource" ref="dataSource" />
        </bean>

    <!--开启基于注解的事物,使用xml配置形式的事务(必要主要的都是使用配置式)---->

    <aop:config>

            <!--切入点表达式>

      <aop:pointcunt   expression="execution(* xxxxx.services..*(..) )   id="txPoint"/>..下的*就是该包下所有类,..是指在该包下有子包也可以识别

      <aop:advisor advice-ref="txAdvice" point-ref="txPoint">

    </aop:config>

    <!---配置事物增强,事物如何切入-->

    <tx:advice id="txAdvice"   transaction-manager="transactionManager">
      <tx:attributes>

        <tx:method  name="*"/>所有方法都是事物方法

        <tx:method name="get*" read-only="true"/>以get开始的所有方法

      </tx:attributes>

    </tx:advice>

    总结:配置文件的核心点(数据源,与mybatis的整合,事物控制)

    6:mybatis的逆向工程mybatis-config.xml该xml文件是配置数据库全局变量的,如果不在是这个里面配置,在sqlFactory中配置也是可以的。

    <!DOCTYPE configuration

      PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

    ''http://mybatis.org/dtd/mybatis-3-config.dtd">

    <configuration>

      <settings>

        <setting name="mapUnderscoreToCamelCase" value="true">

      </settings>

      <typeAliases>

        <package name="com.atguigu.crud.bean"/>

      </typeAliases>

    </configuration>

  • 相关阅读:
    明明的随机数
    字符串大小写转换
    字符串合并处理
    【数据结构】c语言实现集合的交并差运算
    【数据结构】一元多项式
    【保存】
    {【保存】数据结构
    【java】关键字this怎么用?
    【数据结构】顺序表
    【JAVA】【作业向】第一题:本学期一班级有n名学生,m门课程。现要求对每门课程的成绩进行统计:平均成绩、最高成绩、最低成绩,并统计考试成绩的分布律。
  • 原文地址:https://www.cnblogs.com/wth21-1314/p/9615022.html
Copyright © 2011-2022 走看看