SoFunction
Updated on 2025-03-05

spring6+JDK17 implements SSM starting configuration file

1. Configure POM files

<project xmlns="/POM/4.0.0" xmlns:xsi="http:///2001/XMLSchema-instance"
         xsi:schemaLocation="/POM/4.0.0 /maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId></groupId>
    <artifactId>ssm-board</artifactId>
    <packaging>war</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>ssm-board Maven Webapp</name>
    <url></url>

    <properties>
        <>UTF-8</>
        <>17</>
        <>17</>
        <>2.15.3</>
        <>6.1.2</>
    </properties>

    <dependencies>
        <!-- Unit testing dependency -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>

        <!-- Spring MVC dependency -->
        <dependency>
            <groupId></groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${}</version>
        </dependency>

        <!-- Integrating MyBatis with Spring -->
        <dependency>
            <groupId></groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.14</version>
        </dependency>
        <dependency>
            <groupId></groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>3.0.3</version>
        </dependency>

        <!-- MySQL connector dependency -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.33</version>
        </dependency>

        <!-- Spring JDBC dependency -->
        <dependency>
            <groupId></groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${}</version>
        </dependency>

        <!-- Druid database connection pool dependency -->
        <dependency>
            <groupId></groupId>
            <artifactId>druid</artifactId>
            <version>1.2.9</version>
        </dependency>

        <!-- Jackson dependencies for JSON processing -->
        <dependency>
            <groupId></groupId>
            <artifactId>jackson-core</artifactId>
            <version>${}</version>
        </dependency>
        <dependency>
            <groupId></groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>${}</version>
        </dependency>
        <dependency>
            <groupId></groupId>
            <artifactId>jackson-databind</artifactId>
            <version>${}</version>
        </dependency>

        <!-- Lombok dependency for reducing boilerplate code -->
        <dependency>
            <groupId></groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.30</version>
        </dependency>

        <!-- FastJSON dependency -->
        <dependency>
            <groupId></groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.83</version>
        </dependency>

        <!-- Hibernate Validator dependency for data validation -->
        <dependency>
            <groupId></groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>6.2.</version>
        </dependency>

        <!-- JWT dependency for authentication -->
        <dependency>
            <groupId>com.auth0</groupId>
            <artifactId>java-jwt</artifactId>
            <version>4.4.0</version>
        </dependency>

        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.16.1</version>
        </dependency>

        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.4</version>
        </dependency>

        <dependency>
            <groupId></groupId>
            <artifactId>tomcat-embed-core</artifactId>
            <version>10.1.19</version>
            <scope>compile</scope>
        </dependency>

    </dependencies>

    <build>
        <finalName>ssm-board</finalName>
        <plugins>
            <!-- Maven compiler plugin for setting Java version -->
            <plugin>
                <groupId></groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.11.0</version>
                <configuration>
                    <parameters>true</parameters>
                    <source>17</source>
                    <target>17</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

2. Create a new file in the resource directory to configure spirng

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="/schema/beans"
       xmlns:xsi="http:///2001/XMLSchema-instance"
       xmlns:context="/schema/context"
       xmlns:tx="/schema/tx"
       xsi:schemaLocation="/schema/beans
           /schema/beans/
           /schema/context
           /schema/context/
           /schema/tx
           /schema/tx/">

    <!-- Enable annotation-driven configuration -->
    <context:annotation-config/>
    <context:component-scan base-package=""/>

    <!-- Data source definition -->
    <bean  class="">
        <property name="driverClassName" value=""/>
        <property name="url" value="jdbc:mysql://localhost:3306/experiment5"/>
        <property name="username" value="root"/>
        <property name="password" value="root"/>
        <property name="initialSize" value="5"/>
        <property name="maxActive" value="20"/>
    </bean>

    <!-- SQL session factory -->
    <bean  class="">
        <property name="dataSource" ref="dataSource"/>
        <property name="typeAliasesPackage" value=""/>
        <property name="mapperLocations" value="classpath*:mapper/*.xml"/>
        <property name="configLocation" value="classpath:" />
    </bean>

    <!-- Mapper scanner -->
    <bean class="">
        <property name="basePackage" value=""/>
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
    </bean>

    <!-- Transaction manager -->
    <bean  class="">
        <property name="dataSource" ref="dataSource"/>
    </bean>

    <!-- Enable annotation-driven transaction management -->
    <tx:annotation-driven transaction-manager="transactionManager"/>
</beans>

3. Create a new file in the resource directory to configure springmvc

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="/schema/beans"
       xmlns:mvc="/schema/mvc"
       xmlns:context="/schema/context"
       xmlns:xsi="http:///2001/XMLSchema-instance"
       xsi:schemaLocation="
        /schema/beans
        /schema/beans/
        /schema/mvc
        /schema/mvc/
        /schema/context
        /schema/context/">

    <!-- Enable component scanning -->
    <context:component-scan base-package=""/>

    <!-- Enable annotation-driven MVC -->
    <mvc:annotation-driven/>

    <!-- Multipart resolver bean -->
    <bean  class=""/>

    <mvc:resources mapping="/static/**" location="file:E:/ProjectFile/"/>

    <!-- Define view resolver -->
    <bean  class="">
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
</beans>

4. Configure files in the webapp\WEB-INF\jsp directory

&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;web-app
        version="3.0"
        xmlns="/xml/ns/javaee"
        xmlns:xsi="http:///2001/XMLSchema-instance"
        xsi:schemaLocation="/xml/ns/javaee   /xml/ns/javaee/web-app_3_0.xsd"&gt;
    &lt;display-name&gt;experiment5-spring&lt;/display-name&gt;

    &lt;!-- Starting Spring context via listener --&gt;
    &lt;context-param&gt;
        &lt;param-name&gt;contextConfigLocation&lt;/param-name&gt;
        &lt;param-value&gt;classpath*:&lt;/param-value&gt;
    &lt;/context-param&gt;

    &lt;listener&gt;
        &lt;listener-class&gt;&lt;/listener-class&gt;
    &lt;/listener&gt;

    &lt;!-- Spring DispatcherServlet configuration --&gt;
    &lt;servlet&gt;
        &lt;servlet-name&gt;dispatcher&lt;/servlet-name&gt;
        &lt;servlet-class&gt;&lt;/servlet-class&gt;
        &lt;init-param&gt;
            &lt;param-name&gt;contextConfigLocation&lt;/param-name&gt;
            &lt;param-value&gt;classpath*:&lt;/param-value&gt;
        &lt;/init-param&gt;
        &lt;load-on-startup&gt;1&lt;/load-on-startup&gt;
        &lt;multipart-config&gt;
            &lt;!--         What is the maximum uploaded file   --&gt;
            &lt;max-file-size&gt;10485760&lt;/max-file-size&gt;
            &lt;!--         Maximum request size   --&gt;
            &lt;max-request-size&gt;10485760&lt;/max-request-size&gt;
            &lt;!--         How big or more files can be uploaded   --&gt;
            &lt;file-size-threshold&gt;0&lt;/file-size-threshold&gt;
        &lt;/multipart-config&gt;
    &lt;/servlet&gt;

    &lt;servlet-mapping&gt;
        &lt;servlet-name&gt;dispatcher&lt;/servlet-name&gt;
        &lt;url-pattern&gt;/&lt;/url-pattern&gt;
    &lt;/servlet-mapping&gt;

    &lt;!-- Configure character encoding filters --&gt;
    &lt;filter&gt;
        &lt;filter-name&gt;encodingFilter&lt;/filter-name&gt;
        &lt;filter-class&gt;&lt;/filter-class&gt;
        &lt;init-param&gt;
            &lt;param-name&gt;encoding&lt;/param-name&gt;
            &lt;param-value&gt;UTF-8&lt;/param-value&gt;
        &lt;/init-param&gt;
        &lt;init-param&gt;
            &lt;param-name&gt;forceEncoding&lt;/param-name&gt;
            &lt;param-value&gt;true&lt;/param-value&gt;
        &lt;/init-param&gt;
    &lt;/filter&gt;

    &lt;filter-mapping&gt;
        &lt;filter-name&gt;encodingFilter&lt;/filter-name&gt;
        &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
    &lt;/filter-mapping&gt;

&lt;/web-app&gt;

This is the article about spring6+JDK17 implementation of SSM configuration files. For more related content on spring6+JDK17 implementation of SSM, please search for my previous articles or continue browsing the related articles below. I hope everyone will support me in the future!