0
点赞
收藏
分享

微信扫一扫

SSM框架配置详解

杰森wang 2022-01-28 阅读 58

之前一直配不好SSM框架,各种出错,现在整理下来
这个东西不能一味的复制粘贴,一定要搞清楚他们之间的关系才行
首先项目是maven项目
首先配置pom.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.bjpowermode</groupId>
    <artifactId>CRM</artifactId>
    <version>1.0</version>
    <packaging>war</packaging>    <!--将项目改为web项目,加上war包-->
<!--    配置项目版本信息-->

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <spring.version>5.2.8.RELEASE</spring.version>
    </properties>

    <dependencies>
<!--        可以很方便的使用三个注解,非必须
@Data
@AllArgsConstructor
@NoArgsConstructor
-->
        <!--lombok-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.20</version>
            <scope>provided</scope>
        </dependency>
<!--        导入与servlet相关的jar,必须-->
        <!--servlet-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
            <scope>provided</scope>
        </dependency>
<!--        方便在jsp界面中使用,非必须-->
        <!--JSTL-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
<!--        json一种浏览器传递数据的格式,导入json相关jar方便处理 非必须-->
        <!--JSON处理器-->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.11.2</version>
        </dependency>
<!--        spring框架  必须-->
        <!--spring-context-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>
<!--        spring web环境 必须-->
        <!--spring-web-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${spring.version}</version>
        </dependency>
<!--        spring mvc相关依赖 必须-->
        <!--spring-mvc-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
        </dependency>
<!--jdbc 用于连接数据库 必须-->
        <!--spring-jdbc-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${spring.version}</version>
        </dependency>
<!--        以下两个是用于spring的测试环境,非必须(需要测试必须)-->
        <!--Spring test-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!--junit test-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
<!--        数据库连接池 使用的阿里的 德鲁伊 ,根据情况 非必须-->
        <!--connection pool-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.12</version>
        </dependency>
<!--        sql驱动 必须-->
        <!--mysql driver-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.49</version>
        </dependency>
<!--        mybatis与spring容器相关jar 必须-->
        <!--mybatis-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.5</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.3.1</version>
        </dependency>
<!--        用于aop 非必须-->
        <!--Spring aop-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aspects</artifactId>
            <version>${spring.version}</version>
        </dependency>

    </dependencies>


    <build>
        <resources>
            <!--资源不过滤,需要打包-->
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <!--资源不过滤-->
                <filtering>false</filtering>
            </resource>
        </resources>
        <plugins>
            <!--JDK插件-->
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.0</version>
                <configuration>
                    <source>${maven.compiler.source}</source>
                    <target>${maven.compiler.target}</target>
                    <encoding>${project.build.sourceEncoding}</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>


</project>

接下来创建webapp文件夹,如图
在这里插入图片描述
在webapp文件夹下创建web.xml
在这里插入图片描述
在这个界面中,注意web.xml文件必须在webapp/WEB-INF/web.xml中
在这里插入图片描述
然后在resource文件夹中创建applicationContext.xml文件
这个文件是spring框架的配置文件,配置如下

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/aop https://www.springframework.org/schema/aop/spring-aop.xsd">

        <!--扫描组件,让Spring托管-->
            <context:component-scan base-package="com.bjpowernode" />
        <!--加载配置-->
            <!--
            ignore-unresolvable为true时,配置文件${}找不到对应占位符的值,直接赋值'${}'
            -->
            <context:property-placeholder location="classpath:jdbc.properties" ignore-unresolvable="true"/>

            <!--配置数据源druid-->
                    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
                        <!--driverClassName可以不写,智能匹配-->
                        <property name="driverClassName" value="${jdbc.driver}" />
                        <property name="url" value="${jdbc.url}" />
                        <property name="username" value="${jdbc.username}" />
                        <property name="password" value="${jdbc.password}" />
                    </bean>
            <!--整合MyBatis-->
                    <!-- 配置 SqlSessionFactory -->
                    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
                        <!--读取mybatis的主配置-->
                        <property name="configLocation" value="classpath:mybatis.xml"/>
                        <!--衔接数据源,目前使用的是数据库连接池-->
                        <property name="dataSource" ref="dataSource" />
                        <!--批量起别名,放在beans包中【也就是实体】-->
                        <property name="typeAliasesPackage" value="com.bjpowernode.beans" />
                    </bean>
                    <!-- 配置Spring整合MyBatis,扫描包 -->
                    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
                        <!--注册MyBatis的映射文件-->
                        <property name="basePackage" value="com.bjpowernode.mapper" />
                        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
                    </bean>
        <!--开启@Aspect注解-->
            <!--xmlns:aop="http://www.springframework.org/schema/aop"-->
            <aop:aspectj-autoproxy/>



</beans>

由于spring和mybatis需要整合在一起,所以spring中除了常规的,还需要配置数据库连接池以及整合mybatis框架
接下来在resource文件夹下创建spring-mvc.xml文件
此文件是spring-mvc的配置文件
如下:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd">
    <!--扫描组件,让Spring托管-->
        <context:component-scan base-package="com.bjpowernode.controller" />
        <!--如果发现是静态资源的请求,就将该请求转由Web应用服务器默认的Servlet处理-->
            <mvc:default-servlet-handler />
        <!--视图解析器-->
            <!--前缀目录为:/WEB-INF/jsp/-->
            <!--后缀扩展名为:.jsp-->
            <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
                <property name="prefix" value="/WEB-INF/jsp/" />
                <property name="suffix" value=".jsp" />
            </bean>
        <!--启用注解驱动-->
            <mvc:annotation-driven />

<!--拦截器配置     可无-->
           <mvc:interceptors>
               <mvc:interceptor>
                   <mvc:mapping path="/**"/>
                   <mvc:exclude-mapping path="/user/loginView"/>
                   <mvc:exclude-mapping path="/user/login.do"/>
                   <mvc:exclude-mapping path="/"/>
                   <bean class="com.bjpowernode.interceptor.LoginInterceptor"/>
               </mvc:interceptor>
           </mvc:interceptors>

</beans>

然后在resource文件夹下创建mybatis.xml文件,由于mybatis相关配置已经在applicationContext.xml文件中配置过,只需要额外配置日志即可,十分简单

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <settings>
        <!--设置mybatis输出日志-->
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>

</configuration>

可以将程序分离,额外创建jdbc.properties文件配置jdbc信息

#数据库
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/crm?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=UTC
jdbc.username=[你的账号]
jdbc.password=[你的密码]

最后一步,配置web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">

<!--    静态资源拦截 必须放在第一位-->
    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>/app/*</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>/css/*</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>/img/*</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>/js/*</url-pattern>
    </servlet-mapping>


        <!--注册SpringMVC DispatcherServlet的核心处理器-->
            <servlet>
                <servlet-name>DispatcherServlet</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>
            <!--配置SpringMVC拦截路径-->
            <servlet-mapping>
                <servlet-name>DispatcherServlet</servlet-name>
                <url-pattern>/</url-pattern>
            </servlet-mapping>
        <!--启动SpringContext-->
            <context-param>
                <param-name>contextConfigLocation</param-name>
                <param-value>classpath:applicationContext.xml</param-value>
            </context-param>
            <listener>
                <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
            </listener>
            <!--乱码处理-->
                    <!--Spring自带的CharacterEncodingFilter过滤器-->
                    <filter>
                        <filter-name>CharacterEncodingFilter</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>CharacterEncodingFilter</filter-name>
                        <url-pattern>/*</url-pattern>
                    </filter-mapping>

</web-app>

整个项目即可配置完成,最后再检查一下有没有将配置文件导入
在这里插入图片描述
整个项目即可配置完成
最后再提醒一遍,不要一味地复制粘贴,要搞清楚他们之间的关系!!!

举报

相关推荐

0 条评论