Plantilla de marco SSM (configuración alta: configure todos los archivos de configuración necesarios a la vez)

Tabla de contenido

1. Configuración del archivo Pom.xml (básicamente no es necesario modificarlo)

En segundo lugar, la configuración del archivo applicationContex.xml. (Solo hay un lugar que necesita ser modificado aquí)

Tres, configuración del archivo mybatis-config.xml (modificar según sea necesario)

Cuarto, configure el archivo web.xml (básicamente no es necesario modificarlo)

5. Configure el archivo springmvc. (básicamente no hay necesidad de modificar)

Sexto, finalmente configure el archivo log4j.properites. (básicamente no requiere modificación)


1. Configuración del archivo Pom.xml (básicamente no es necesario modificarlo)

Desde la conexión a la base de datos hasta la salida de la información de la base de datos desde la página web, el paquete básico está aquí. Qué paquete está incluido y qué función también está marcada.

<?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>org.example</groupId>
  <artifactId>SSM_new</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>war</packaging>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>

    <!--    最常用的包,这个包包括core,beans,-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>5.3.18</version>
    </dependency>
    <!--Spring-beans包,bean标签-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>5.3.18</version>
    </dependency>
    <!--jdbc包,进行数据库操作的包-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>5.3.18</version>
    </dependency>
    <!--事务管理包-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-tx</artifactId>
      <version>5.3.18</version>
    </dependency>
    <!--数据库源的包-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.28</version>
    </dependency>
    <!--进行mybatis操作的包-->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.6</version>
    </dependency>

    <!--    mybatis-spring的包,进行整合的包-->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>2.0.6</version>
    </dependency>
<!--springmvc框架的依赖包,用于网页输出-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.3.18</version>
    </dependency>
<!--    这个是jstl标签的依赖包,用于c:foreach 遍历 model属性-->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
    </dependency>

    <!-- log4j配置文件需要的依赖-->
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.17</version>
    </dependency>

    <!-- slf4j日志输出,它必须和log4j进行绑定,才能输出到控制台 -->
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <version>1.7.32</version>
    </dependency>
  </dependencies>

  <!--  这个是IDEA必须存在的,指在用途是告诉IDEA,Mapper.xml文件的位置,
        因为一般默认情况下IDEA是不会去Java目录的,尽管你添加Java路径都没用-->
  <build>
    <resources>
      <resource>
        <directory>src/main/java</directory>
        <includes>
          <include>**/*.xml</include>
        </includes>
      </resource>
    </resources>
  </build>

</project>

En segundo lugar, la configuración del archivo applicationContex.xml. (Solo hay un lugar que necesita ser modificado aquí)

Porque la interfaz del servidor, el nombre y la contraseña de todos son diferentes. Aquí se requieren modificaciones.

<?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:tx="http://www.springframework.org/schema/tx"
       xmlns:p="http://www.springframework.org/schema/p"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/tx
       http://www.springframework.org/schema/tx/spring-tx.xsd
       http://www.springframework.org/schema/context
       https://www.springframework.org/schema/context/spring-context.xsd">

    <!--由spring管理    配置数据源数据库连接(从jdbc属性文件中读取参数) -->
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="url" value="jdbc:mysql://localhost:3307/student?serverTimezone=Asia/Shanghai"/>
        <property name="username" value="root"/>
        <property name="password" value="dada"/>
        <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
    </bean>

    <!-- 整合 mybatis -->
    <bean id="sqlSessionFactory"
          class="org.mybatis.spring.SqlSessionFactoryBean"
          p:dataSource-ref="dataSource"
          p:configLocation="classpath:mybatis-config.xml"/>

    <!--  mybatis自动扫描 将Mapper接口生成代理注入到Spring -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"
          p:sqlSessionFactoryBeanName="sqlSessionFactory"
          p:basePackage="dao" />

    <!--扫描service包下所有使用注解的类型  这里扫描的是service的事务管理器-->
    <context:component-scan base-package="service"/>

    <!--配置事务管理器-->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <!--注入数据库连接池-->
        <property name="dataSource" ref="dataSource"/>
    </bean>

    <!--配置基于注解的声明式事务
    默认使用注解来管理事务行为-->
    <tx:annotation-driven transaction-manager="transactionManager"/>

    <!--    需要注意,这一句不能遗漏,如果缺少这一句,
       -->
    <context:component-scan base-package="controller"/>

</beans>

Tenga en cuenta que este archivo puede volverse popular en varios lugares justo después de configurarlo. Es porque aún tenemos varios archivos que no han sido configurados, por ejemplo: mybatis-config.xml aún no ha sido configurado.

Tres, configuración del archivo mybatis-config.xml (modificar según sea necesario)

<?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>
    <mappers>
        <mapper resource="mybatis/UserMapper.xml"/>
    </mappers>
</configuration>  

Cuarto, configure el archivo web.xml (básicamente no es necesario modificarlo)

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         id="WebApp_ID" version="3.1">
    <!-- 实例化ApplicationContext容器 -->
    <context-param>
        <!-- 加载src目录下的applicationContext.xml文件 -->
        <param-name>contextConfigLocation</param-name>
        <param-value>
            classpath:applicationContext.xml
        </param-value>
    </context-param>
    <!-- 指定以ContextLoaderListener方式启动Spring容器 -->
    <listener>
        <listener-class>
            org.springframework.web.context.ContextLoaderListener
        </listener-class>
    </listener>
    <!--配置DispatcherServlet -->
    <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:springmvc.xml</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>
    <!-- 避免中文乱码 -->
    <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>
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>characterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>

Tenga en cuenta que esto puede volverse popular en springmvc. Porque este archivo aún no se ha configurado.

5. Configure el archivo springmvc. (básicamente no hay necesidad de modificar)

<?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"
       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">
    
    <!--视图解析器-->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

    <!--扫包-->
<!--    它的作用是在浏览器输入 /input 可以识别Controller定义的 /input-->
    <context:component-scan base-package="controller"/>

</beans>

Sexto, finalmente configure el archivo log4j.properites. (básicamente no requiere modificación)

Este archivo es bastante importante, puede rastrear nuestras operaciones y rastrear nuestra información de entrada y salida en la consola.

# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# MyBatis logging configuration...
log4j.logger.com.dao=DEBUG
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

Nota: Se configura aquí. También necesita configurar alguna información de información para rastrear la información de salida de esta información.

Agregue códigos a la clase de controlador y la clase de servicio respectivamente: (anote este método, se usará en el futuro)

private static final Logger logger = LoggerFactory.getLogger(LoginController.class);


logger.info("input info:{}",user);

Ahora todos los archivos de configuración están básicamente configurados. Puede comenzar a escribir código, por ejemplo: crear capa dao, capa de servicio, capa de controlador, capa mybatis, capa po, capa de Vista.

Aquí debe prestar atención a la ubicación de la capa jsp, que debe colocarse en el directorio WEB-INF.

Esta relación se debe a que definimos su ubicación en springmvc. Si no desea colocarlo en este directorio, modifique el valor de este archivo.

Posdata: Justo después de terminar esta nota, ¡cometí tal error! !

 Aquí está el jsp que no está colocado en el directorio WEB-INF. , resulta en un 404 todo el tiempo! ! ! !

Capacitación de seguimiento: Intente la estructura de SSM para la verificación de inicio de sesión.

Problemas encontrados:

El primer problema: excepción de puntero nulo    java.lang.NullPointerException

 

(Para juzgar si se obtuvieron el número de cuenta y la contraseña, aquí falta el juicio del puntero nulo en la lista. Si no hay list!=null, entonces la situación de null.getAccount aparecerá más tarde. También puede agregar registros para registrar qué datos es la lista ) .

 

Segundo problema (problema anterior): no puede usar elementos para decorar el tipo po.User.

loginList, en la capa de servicio, define el UserDao.login(usuario) correspondiente. El tipo de retorno de esto es la clase de Usuario, es decir, no lo modifiqué con el tipo de List<User>, por lo que loginList no es un tipo de elementos.

 

Supongo que te gusta

Origin blog.csdn.net/qq_55928086/article/details/131562405
Recomendado
Clasificación