Java maven搭建SSM框架主要配置文件

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
  3.          xmlns="http://java.sun.com/xml/ns/javaee"  
  4.          xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   
  5.          http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"  
  6.          id="WebApp_ID" version="3.0">  
  7.     <!-- 配置Spring配置文件路径 -->  
  8.     <context-param>  
  9.         <param-name>contextConfigLocation</param-name>  
  10.         <param-value>  
  11.             classpath:applicationContext.xml  
  12.         </param-value>  
  13.     </context-param>  
  14.     <!-- 配置Spring上下文监听器 -->  
  15.     <listener>  
  16.         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
  17.     </listener>  
  18.     <!-- Spring -->  
  19.   
  20.     <!-- 配置Spring字符编码过滤器 -->  
  21.     <filter>  
  22.         <filter-name>encodingFilter</filter-name>  
  23.         <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  
  24.         <init-param>  
  25.             <param-name>encoding</param-name>  
  26.             <param-value>UTF-8</param-value>  
  27.         </init-param>  
  28.         <init-param>  
  29.             <param-name>forceEncoding</param-name>  
  30.             <param-value>true</param-value>  
  31.         </init-param>  
  32.     </filter>  
  33.     <filter-mapping>  
  34.         <filter-name>encodingFilter</filter-name>  
  35.         <url-pattern>/*</url-pattern>  
  36.     </filter-mapping>  
  37.   
  38.     <!-- 配置log4j配置文件路径 -->  
  39.     <context-param>  
  40.         <param-name>log4jConfigLocation</param-name>  
  41.         <param-value>classpath:log4j.properties</param-value>  
  42.     </context-param>  
  43.     <!-- 60s 检测日志配置 文件变化 -->  
  44.     <context-param>  
  45.         <param-name>log4jRefreshInterval</param-name>  
  46.         <param-value>60000</param-value>  
  47.     </context-param>  
  48.   
  49.     <!-- 配置Log4j监听器 -->  
  50.     <listener>  
  51.         <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>  
  52.     </listener>  
  53.   
  54.     <!-- Spring MVC 核心控制器 DispatcherServlet 配置 -->  
  55.     <servlet>  
  56.         <servlet-name>dispatcher</servlet-name>  
  57.         <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
  58.         <init-param>  
  59.             <param-name>contextConfigLocation</param-name>  
  60.             <param-value>classpath*:spring-mvc.xml</param-value>  
  61.         </init-param>  
  62.         <load-on-startup>1</load-on-startup>  
  63.     </servlet>  
  64.     <servlet-mapping>  
  65.         <servlet-name>dispatcher</servlet-name>  
  66.         <!-- 拦截所有/rest/* 的请求,交给DispatcherServlet处理,性能最好 -->  
  67.         <url-pattern>*.do</url-pattern>  
  68.     </servlet-mapping>  
  69.   
  70.     <!-- 首页 -->  
  71.     <welcome-file-list>  
  72.         <welcome-file>index</welcome-file>  
  73.     </welcome-file-list>  
  74.   
  75. </web-app>  

spring-mvc.xml

[java]  view plain  copy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.        xmlns:aop="http://www.springframework.org/schema/aop"  
  4.        xmlns:context="http://www.springframework.org/schema/context"  
  5.        xmlns:mvc="http://www.springframework.org/schema/mvc"  
  6.        xmlns:tx="http://www.springframework.org/schema/tx"  
  7.        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  8.        xmlns:p="http://www.springframework.org/schema/p"  
  9.        xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd  
  10.         http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd   
  11.         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd   
  12.         http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd   
  13.         http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">  
  14.   
  15.     <!-- 扫描controller(controller层注入) -->  
  16.     <context:component-scan base-package="com.project"/>  
  17.       
  18.     <!-- 支持返回json(避免IE在ajax请求时,返回json出现下载 ) -->  
  19.     <bean id="mappingJacksonHttpMessageConverter"  
  20.           class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">  
  21.         <property name="supportedMediaTypes">  
  22.             <list>  
  23.                 <value>text/plain;charset=UTF-8</value>  
  24.                 <value>application/json;charset=UTF-8</value>  
  25.             </list>  
  26.         </property>  
  27.     </bean>  
  28.     <!-- 支持返回json -->  
  29.   
  30.     <!-- 启动SpringMVC的注解功能,完成请求和注解POJO的映射 -->  
  31.     <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">  
  32.         <property name="messageConverters">  
  33.             <list>  
  34.                 <ref bean="mappingJacksonHttpMessageConverter"/>  
  35.             </list>  
  36.         </property>  
  37.     </bean>  
  38.   
  39.     <!-- 对模型视图添加前后缀 -->  
  40.     <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"  
  41.           p:prefix="/WEB-INF/views/" p:suffix=".jsp"/>  
  42.   
  43.     <!-- 配置springMVC处理上传文件的信息 -->  
  44.     <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">  
  45.         <property name="defaultEncoding" value="utf-8"/>  
  46.         <property name="maxUploadSize" value="10485760000"/>  
  47.         <property name="maxInMemorySize" value="40960"/>  
  48.     </bean>  
  49.   
  50. </beans>  

applicationContext.xml

[java]  view plain  copy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context"  
  3.        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"  
  4.        xmlns:tx="http://www.springframework.org/schema/tx" xmlns:p="http://www.springframework.org/schema/p"  
  5.        xmlns:util="http://www.springframework.org/schema/util" xmlns:jdbc="http://www.springframework.org/schema/jdbc"  
  6.        xmlns:cache="http://www.springframework.org/schema/cache" xmlns:task="http://www.springframework.org/schema/task"  
  7.        xsi:schemaLocation="  
  8.     http://www.springframework.org/schema/context  
  9.     http://www.springframework.org/schema/context/spring-context.xsd  
  10.     http://www.springframework.org/schema/beans  
  11.     http://www.springframework.org/schema/beans/spring-beans.xsd  
  12.     http://www.springframework.org/schema/tx  
  13.     http://www.springframework.org/schema/tx/spring-tx.xsd  
  14.     http://www.springframework.org/schema/jdbc  
  15.     http://www.springframework.org/schema/jdbc/spring-jdbc.xsd  
  16.     http://www.springframework.org/schema/cache  
  17.     http://www.springframework.org/schema/cache/spring-cache.xsd  
  18.     http://www.springframework.org/schema/aop  
  19.     http://www.springframework.org/schema/aop/spring-aop.xsd  
  20.     http://www.springframework.org/schema/util  
  21.     http://www.springframework.org/schema/util/spring-util.xsd  
  22.     http://www.springframework.org/schema/task   
  23.     http://www.springframework.org/schema/task/spring-task-4.0.xsd">  
  24.   
  25.     <!-- 自动扫描带有注解的类 纳入spring容器管理 -->  
  26.     <context:component-scan base-package="com.project"></context:component-scan>  
  27.   
  28.     <!-- 读取参数配置 -->  
  29.     <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">    
  30.         <property name="locations">    
  31.             <list>    
  32.                  <value>/WEB-INF/classes/jdbc.properties</value>  
  33.             </list>    
  34.         </property>    
  35.     </bean>  
  36.     <!-- dataSource 配置 -->  
  37.     <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"  
  38.         init-method="init" destroy-method="close">  
  39.         <!-- 基本属性 url、user、password -->  
  40.         <property name="url" value="${jdbc.url}" />  
  41.         <property name="username" value="${jdbc.username}" />  
  42.         <property name="password" value="${jdbc.password}" />  
  43.         <!-- 配置初始化大小、最小、最大 -->  
  44.         <property name="initialSize" value="${ds.initialSize}" />  
  45.         <property name="minIdle" value="${ds.minIdle}" />  
  46.         <property name="maxActive" value="${ds.maxActive}" />  
  47.         <!-- 配置获取连接等待超时的时间 -->  
  48.         <property name="maxWait" value="${ds.maxWait}" />  
  49.         <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->  
  50.         <property name="timeBetweenEvictionRunsMillis" value="${ds.timeBetweenEvictionRunsMillis}" />  
  51.         <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->  
  52.         <property name="minEvictableIdleTimeMillis" value="${ds.minEvictableIdleTimeMillis}" />  
  53.         <property name="validationQuery" value="SELECT 'x'" />  
  54.         <property name="testWhileIdle" value="true" />  
  55.         <property name="testOnBorrow" value="false" />  
  56.         <property name="testOnReturn" value="false" />  
  57.         <!-- 打开PSCache,并且指定每个连接上PSCache的大小 -->  
  58.         <property name="poolPreparedStatements" value="false" />  
  59.         <property name="maxPoolPreparedStatementPerConnectionSize"  
  60.             value="20" />  
  61.         <!-- 配置监控统计拦截的filters -->  
  62.         <property name="filters" value="stat" />  
  63.     </bean>  
  64.   
  65.     <!-- mybatis文件配置,扫描所有mapper文件 -->  
  66.     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean" p:dataSource-ref="dataSource"  
  67.           p:configLocation="classpath:mybatis-config.xml"  
  68.           p:mapperLocations="classpath:com/project/dao/mapping/*.xml"/>  
  69.   
  70.     <!-- spring与mybatis整合配置,扫描所有dao -->  
  71.     <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer" p:basePackage="com.project.dao"  
  72.           p:sqlSessionFactoryBeanName="sqlSessionFactory"/>  
  73.   
  74.     <!-- 对dataSource 数据源进行事务管理 -->  
  75.     <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"  
  76.           p:dataSource-ref="dataSource"/>  
  77.   
  78.     <!-- 事务管理 通知 -->  
  79.     <tx:advice id="txAdvice" transaction-manager="transactionManager">  
  80.         <tx:attributes>  
  81.             <!-- 对insert,update,delete 开头的方法进行事务管理,只要有异常就回滚 -->  
  82.             <tx:method name="insert*" propagation="REQUIRED" rollback-for="java.lang.Throwable"/>  
  83.             <tx:method name="update*" propagation="REQUIRED" rollback-for="java.lang.Throwable"/>  
  84.             <tx:method name="delete*" propagation="REQUIRED" rollback-for="java.lang.Throwable"/>  
  85.             <!-- select,count开头的方法,开启只读,提高数据库访问性能 -->  
  86.             <tx:method name="select*" read-only="true"/>  
  87.             <tx:method name="count*" read-only="true"/>  
  88.             <!-- 对其他方法 使用默认的事务管理 -->  
  89.             <tx:method name="*"/>  
  90.         </tx:attributes>  
  91.     </tx:advice>  
  92.   
  93.     <!-- 事务 aop 配置 -->  
  94.     <aop:config>  
  95.         <aop:pointcut id="serviceMethods" expression="execution(* com.project.service..*(..))"/>  
  96.         <aop:advisor advice-ref="txAdvice" pointcut-ref="serviceMethods"/>  
  97.     </aop:config>  
  98.   
  99.     <!-- 启用对事务注解的支持 -->  
  100.     <tx:annotation-driven transaction-manager="transactionManager"/>  
  101.       
  102. </beans>  

mybatis-config.xml

[java]  view plain  copy
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <!DOCTYPE configuration  
  3.         PUBLIC "-//mybatis.org//DTD Config 3.0//EN"  
  4.         "http://mybatis.org/dtd/mybatis-3-config.dtd">  
  5. <configuration>  
  6.   
  7.     <typeAliases>  
  8.         <package name="com.project.model"/>  
  9.     </typeAliases>  
  10.   
  11. </configuration>  

jdbc.properties

[java]  view plain  copy
  1. ##\u5168\u5C40\u8BBE\u7F6EJDBC Global Setting  
  2. jdbc.driver=com.mysql.jdbc.Driver  
  3. jdbc.url=jdbc:mysql://localhost:3306/project?useUnicode=true&characterEncoding=utf-8  
  4. jdbc.username=root  
  5. jdbc.password=  
  6.   
  7. #\u914D\u7F6E\u521D\u59CB\u5316\u5927\u5C0F\u3001\u6700\u5C0F\u3001\u6700\u5927  
  8. ds.initialSize=1  
  9. ds.minIdle=1  
  10. ds.maxIdle=1000  
  11. ds.maxActive=20  
  12. #\u914D\u7F6E\u83B7\u53D6\u8FDE\u63A5\u7B49\u5F85\u8D85\u65F6\u7684\u65F6\u95F4  
  13. ds.maxWait=60000  
  14. #\u914D\u7F6E\u95F4\u9694\u591A\u4E45\u624D\u8FDB\u884C\u4E00\u6B21\u68C0\u6D4B\uFF0C\u68C0\u6D4B\u9700\u8981\u5173\u95ED\u7684\u7A7A\u95F2\u8FDE\u63A5\uFF0C\u5355\u4F4D\u662F\u6BEB\u79D2  
  15. ds.timeBetweenEvictionRunsMillis=60000  
  16. #\u914D\u7F6E\u4E00\u4E2A\u8FDE\u63A5\u5728\u6C60\u4E2D\u6700\u5C0F\u751F\u5B58\u7684\u65F6\u95F4\uFF0C\u5355\u4F4D\u662F\u6BEB\u79D2  
  17. ds.minEvictableIdleTimeMillis=300000  

log4j.properties

[java]  view plain  copy
  1. # DEBUG,INFO,WARN,ERROR,FATAL  
  2. LOG_LEVEL=DEBUG  
  3. log4j.rootLogger=${LOG_LEVEL},CONSOLE,FILE  
  4. log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender  
  5. log4j.appender.CONSOLE.Encoding=UTF-8  
  6. log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout  
  7. #log4j.appender.CONSOLE.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss} %C{8}@(%F:%L):%m%n   
  8. log4j.appender.CONSOLE.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss} %C{1}@(%F:%L):%m%n  
  9.   
  10. log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender  
  11. log4j.appender.FILE.File=${catalina.base}/logs/project.log  
  12. log4j.appender.FILE.Encoding=UTF-8  
  13. log4j.appender.FILE.DatePattern='.'yyyy-MM-dd  
  14. log4j.appender.FILE.layout=org.apache.log4j.PatternLayout  
  15. #log4j.appender.FILE.layout=org.apache.log4j.HTMLLayout  
  16. log4j.appender.FILE.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH\:mm\:ss} %C{8}@(%F\:%L)\:%m%n   

pom.xml

[java]  view plain  copy
  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  2.   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">  
  3.   <modelVersion>4.0.0</modelVersion>  
  4.   <groupId>com</groupId>  
  5.   <artifactId>project</artifactId>  
  6.   <packaging>war</packaging>  
  7.   <version>0.0.1-SNAPSHOT</version>  
  8.   <name>project Maven Webapp</name>  
  9.   <url>http://maven.apache.org</url>  
  10.   <properties>  
  11.         <!-- base setting -->  
  12.         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
  13.         <project.build.locales>zh_CN</project.build.locales>  
  14.         <project.build.jdk>1.7</project.build.jdk>  
  15.         <!-- spring版本号 -->  
  16.         <spring.version>4.0.2.RELEASE</spring.version>  
  17.         <!-- mybatis版本号 -->  
  18.         <mybatis.version>3.2.6</mybatis.version>  
  19.         <!-- log4j日志文件管理包版本 -->  
  20.         <slf4j.version>1.7.7</slf4j.version>  
  21.         <log4j.version>1.2.17</log4j.version>  
  22.     </properties>  
  23.     <dependencies>  
  24.         <dependency>  
  25.             <groupId>junit</groupId>  
  26.             <artifactId>junit</artifactId>  
  27.             <version>4.11</version>  
  28.             <!-- 表示开发的时候引入,发布的时候不会加载此包 -->  
  29.             <scope>test</scope>  
  30.         </dependency>  
  31.         <!-- Spring包 -->  
  32.         <dependency>  
  33.             <groupId>org.springframework</groupId>  
  34.             <artifactId>spring-core</artifactId>  
  35.             <version>${spring.version}</version>  
  36.         </dependency>  
  37.   
  38.         <dependency>  
  39.             <groupId>org.springframework</groupId>  
  40.             <artifactId>spring-web</artifactId>  
  41.             <version>${spring.version}</version>  
  42.         </dependency>  
  43.         <dependency>  
  44.             <groupId>org.springframework</groupId>  
  45.             <artifactId>spring-oxm</artifactId>  
  46.             <version>${spring.version}</version>  
  47.         </dependency>  
  48.         <dependency>  
  49.             <groupId>org.springframework</groupId>  
  50.             <artifactId>spring-tx</artifactId>  
  51.             <version>${spring.version}</version>  
  52.         </dependency>  
  53.   
  54.         <dependency>  
  55.             <groupId>org.springframework</groupId>  
  56.             <artifactId>spring-jdbc</artifactId>  
  57.             <version>${spring.version}</version>  
  58.         </dependency>  
  59.   
  60.         <dependency>  
  61.             <groupId>org.springframework</groupId>  
  62.             <artifactId>spring-webmvc</artifactId>  
  63.             <version>${spring.version}</version>  
  64.         </dependency>  
  65.         <dependency>  
  66.             <groupId>org.springframework</groupId>  
  67.             <artifactId>spring-aop</artifactId>  
  68.             <version>${spring.version}</version>  
  69.         </dependency>  
  70.   
  71.         <dependency>  
  72.             <groupId>org.springframework</groupId>  
  73.             <artifactId>spring-context-support</artifactId>  
  74.             <version>${spring.version}</version>  
  75.         </dependency>  
  76.   
  77.         <dependency>  
  78.             <groupId>org.springframework</groupId>  
  79.             <artifactId>spring-test</artifactId>  
  80.             <version>${spring.version}</version>  
  81.         </dependency>  
  82.         <!-- mybatis核心包 -->  
  83.         <dependency>  
  84.             <groupId>org.mybatis</groupId>  
  85.             <artifactId>mybatis</artifactId>  
  86.             <version>${mybatis.version}</version>  
  87.         </dependency>  
  88.         <!-- mybatis/spring包 -->  
  89.         <dependency>  
  90.             <groupId>org.mybatis</groupId>  
  91.             <artifactId>mybatis-spring</artifactId>  
  92.             <version>1.2.2</version>  
  93.         </dependency>  
  94.         <!-- 导入java ee jar 包 -->  
  95.         <dependency>  
  96.             <groupId>javax</groupId>  
  97.             <artifactId>javaee-api</artifactId>  
  98.             <version>7.0</version>  
  99.         </dependency>  
  100.         <dependency>  
  101.             <groupId>com.alibaba</groupId>  
  102.             <artifactId>druid</artifactId>  
  103.             <version>1.0.31</version>  
  104.         </dependency>  
  105.         <!-- 导入Mysql数据库链接jar包 -->  
  106.         <dependency>  
  107.             <groupId>mysql</groupId>  
  108.             <artifactId>mysql-connector-java</artifactId>  
  109.             <version>5.1.30</version>  
  110.         </dependency>  
  111.         <!-- 导入dbcp的jar包,用来在applicationContext.xml中配置数据库 -->  
  112.         <dependency>  
  113.             <groupId>commons-dbcp</groupId>  
  114.             <artifactId>commons-dbcp</artifactId>  
  115.             <version>1.2.2</version>  
  116.         </dependency>  
  117.         <!-- JSTL标签类 -->  
  118.         <dependency>  
  119.             <groupId>jstl</groupId>  
  120.             <artifactId>jstl</artifactId>  
  121.             <version>1.2</version>  
  122.         </dependency>  
  123.         <!-- 日志文件管理包 -->  
  124.         <!-- log start -->  
  125.         <dependency>  
  126.             <groupId>log4j</groupId>  
  127.             <artifactId>log4j</artifactId>  
  128.             <version>${log4j.version}</version>  
  129.         </dependency>  
  130.   
  131.   
  132.         <!-- 格式化对象,方便输出日志 -->  
  133.         <dependency>  
  134.             <groupId>com.alibaba</groupId>  
  135.             <artifactId>fastjson</artifactId>  
  136.             <version>1.1.41</version>  
  137.         </dependency>  
  138.   
  139.   
  140.         <dependency>  
  141.             <groupId>org.slf4j</groupId>  
  142.             <artifactId>slf4j-api</artifactId>  
  143.             <version>${slf4j.version}</version>  
  144.         </dependency>  
  145.   
  146.         <dependency>  
  147.             <groupId>org.slf4j</groupId>  
  148.             <artifactId>slf4j-log4j12</artifactId>  
  149.             <version>${slf4j.version}</version>  
  150.         </dependency>  
  151.         <!-- log end -->  
  152.         <!-- 映入JSON -->  
  153.         <dependency>  
  154.             <groupId>org.codehaus.jackson</groupId>  
  155.             <artifactId>jackson-mapper-asl</artifactId>  
  156.             <version>1.9.13</version>  
  157.         </dependency>  
  158.         <!-- 上传组件包 -->  
  159.         <dependency>  
  160.             <groupId>commons-fileupload</groupId>  
  161.             <artifactId>commons-fileupload</artifactId>  
  162.             <version>1.3.1</version>  
  163.         </dependency>  
  164.         <dependency>  
  165.             <groupId>commons-io</groupId>  
  166.             <artifactId>commons-io</artifactId>  
  167.             <version>2.4</version>  
  168.         </dependency>  
  169.         <dependency>  
  170.             <groupId>commons-codec</groupId>  
  171.             <artifactId>commons-codec</artifactId>  
  172.             <version>1.9</version>  
  173.         </dependency>  
  174.         <dependency>  
  175.             <groupId>org.aspectj</groupId>  
  176.             <artifactId>aspectjweaver</artifactId>  
  177.             <version>1.7.3</version>  
  178.         </dependency>  
  179.     </dependencies>  
  180.   <build>  
  181.     <finalName>project</finalName>  
  182.   </build>  
  183. </project>  

猜你喜欢

转载自blog.csdn.net/weixin_41690905/article/details/80745804