zoukankan      html  css  js  c++  java
  • 【ssm】springmvc-spring-mybatis框架的搭建

    1.创建maven项目

        1.1 创建的是一个web项目 必须要添加web.xml文件

    web.xml is missing and <failOnMissingWebXml> is set to true

       1.2 在src目录下创建一个WEB-INF的文件夹。创建web.xml文件

       <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xmlns="http://java.sun.com/xml/ns/javaee"
    	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
        http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    	id="WebApp_ID" version="3.0">
    
    	<display-name>ssm-jia</display-name>
    	<welcome-file-list>
    		<welcome-file>index.html</welcome-file>
    		<welcome-file>index.htm</welcome-file>
    		<welcome-file>index.jsp</welcome-file>
    		<welcome-file>default.html</welcome-file>
    		<welcome-file>default.htm</welcome-file>
    		<welcome-file>default.jsp</welcome-file>
    	</welcome-file-list>
    	
    </web-app>

      1.3 添加项目pom 依赖jar

      

    <!-- 所有jar的导入 -->
    	<dependencies>
    		<!-- 添加连接池druid支持 -->
    		<dependency>
    			<groupId>com.alibaba</groupId>
    			<artifactId>druid</artifactId>
    			<version>1.0.16</version>
    		</dependency>
    	<dependency>
    		<groupId>org.springframework</groupId>
    		<artifactId>spring-core</artifactId>
    		<version>4.1.7.RELEASE</version>
    	</dependency>
    	<dependency>
    		<groupId>org.springframework</groupId>
    		<artifactId>spring-web</artifactId>
    		<version>4.1.7.RELEASE</version>
    	</dependency>
    	<dependency>  
                <groupId>aopalliance</groupId>  
                <artifactId>aopalliance</artifactId>  
                <version>1.0</version>  
         </dependency> 
    	<!-- jackson依赖包 -->
    	<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
    	<dependency>
    		<groupId>com.fasterxml.jackson.core</groupId>
    		<artifactId>jackson-databind</artifactId>
    		<version>2.8.9</version>
    	</dependency>
    	<!-- 分页插件 -->  
        <dependency>  
            <groupId>com.github.pagehelper</groupId>  
            <artifactId>pagehelper</artifactId>  
            <version>4.1.4</version>  
        </dependency> 
    	<!-- mybatis逆向工程 -->
    	<!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core -->
    	<dependency>
    		<groupId>org.mybatis.generator</groupId>
    		<artifactId>mybatis-generator-core</artifactId>
    		<version>1.3.5</version>
    	</dependency>
    	<!-- springmvc依赖包 -->
    	<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
    	<dependency>
    		<groupId>org.springframework</groupId>
    		<artifactId>spring-webmvc</artifactId>
    		<version>4.1.7.RELEASE</version>
    	</dependency>
    	<!-- spring面向切面编程依赖包 -->
    	<!-- https://mvnrepository.com/artifact/org.springframework/spring-aspects -->
    	<dependency>
    		<groupId>org.springframework</groupId>
    		<artifactId>spring-aspects</artifactId>
    		<version>4.1.7.RELEASE</version>
    	</dependency>
    	<!-- spring数据库依赖包 -->
    	<!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
    	<dependency>
    		<groupId>org.springframework</groupId>
    		<artifactId>spring-jdbc</artifactId>
    		<version>4.1.7.RELEASE</version>
    	</dependency>
    	<!-- spring测试依赖包 -->
    	<!-- https://mvnrepository.com/artifact/org.springframework/spring-test -->
    	<dependency>
    		<groupId>org.springframework</groupId>
    		<artifactId>spring-test</artifactId>
    		<version>4.1.7.RELEASE</version>
    		<scope>test</scope>
    	</dependency>
    	<!-- mybatis依赖包 -->
    	<dependency>
    		<groupId>org.mybatis</groupId>
    		<artifactId>mybatis</artifactId>
    		<version>3.2.7</version>
    	</dependency>
    	<!-- mybatis整合spring依赖包 -->
    	<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
    	<dependency>
    		<groupId>org.mybatis</groupId>
    		<artifactId>mybatis-spring</artifactId>
    		<version>1.3.0</version>
    	</dependency>
    	<!-- mysql数据库驱动依赖包 -->
    	<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
    	<!-- mysql -->	
    	<dependency>
    		<groupId>mysql</groupId>
    		<artifactId>mysql-connector-java</artifactId>
    		<version>5.1.24</version>
    	</dependency>
    	<!-- c3p0连接池依赖包 -->
    	<!-- https://mvnrepository.com/artifact/c3p0/c3p0 -->
    	<dependency>
    		<groupId>c3p0</groupId>
    		<artifactId>c3p0</artifactId>
    		<version>0.9.1.2</version>
    	</dependency>
    	<!-- servlet-api依赖包 -->
    	<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
    	<dependency>
    		<groupId>javax.servlet</groupId>
    		<artifactId>javax.servlet-api</artifactId>
    		<version>3.1.0</version>
    		<scope>provided</scope>
    	</dependency>
    	<!-- jstl依赖包 -->
    	<!-- https://mvnrepository.com/artifact/javax.servlet/jstl -->
    	<dependency>
    		<groupId>javax.servlet</groupId>
    		<artifactId>jstl</artifactId>
    		<version>1.2</version>
    	</dependency>
    	<!-- junit依赖包 -->
    	<!-- https://mvnrepository.com/artifact/junit/junit -->
    	<dependency>
    		<groupId>junit</groupId>
    		<artifactId>junit</artifactId>
    		<version>4.12</version>
    		<scope>test</scope>
    	</dependency>
    	<!-- 添加百度编辑器ueditor支持 文件上传 -->
    	<dependency>
    		<groupId>commons-fileupload</groupId>
    		<artifactId>commons-fileupload</artifactId>
    		<version>1.3.1</version>
    	</dependency>
    	<!-- log4j 日志 -->
    	<dependency>
      		<groupId>log4j</groupId>
     	 	<artifactId>log4j</artifactId>
      		<version>1.2.16</version>
    	</dependency>

    以上就是基本常用的jar 

      1.4 添加tomcat插件

    <!-- 添加tomcat的插件 -->
    	<build>
    		<plugins>
    			<plugin>
    				<groupId>org.apache.tomcat.maven</groupId>
    				<artifactId>tomcat7-maven-plugin</artifactId>
    				<configuration>
    					<port>8088</port>
    					<path>/</path>
    				</configuration>
    			</plugin>
    		</plugins>
    	</build>

     1.5 在web.xml中添加初始化spring容器的配置

      

    <!-- 初始化spring容器 -->
    	<context-param>
    		<param-name>contextConfigLocation</param-name>
    		<param-value>classpath:spring/applicationContext-*.xml</param-value>
    	</context-param>
    	<listener>
    		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    	</listener>

    1.6 在web.xml文件中添加解决post乱码的类

    <!-- 解决post乱码 -->
    	<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>

    1.7 在web.xml中配置<!-- springmvc的前端控制器 -->

    <!-- springmvc的前端控制器 -->
    	<servlet>
    		<servlet-name>monitor</servlet-name>
    		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    		<!-- contextConfigLocation不是必须的, 如果不配置contextConfigLocation, 
    		springmvc的配置文件默认在:WEB-INF/servlet的name+"-servlet.xml" -->
    		<init-param>
    			<param-name>contextConfigLocation</param-name>
    			<param-value>classpath:spring/springmvc.xml</param-value>
    		</init-param>
    		<load-on-startup>1</load-on-startup>
    	</servlet>
    	<servlet-mapping>
    		<servlet-name>monitor</servlet-name>
    		<url-pattern>/</url-pattern>
    	</servlet-mapping>
    	<servlet>
    		<servlet-name>monitor</servlet-name>
    		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    		<!-- contextConfigLocation不是必须的, 如果不配置contextConfigLocation, 
    		springmvc的配置文件默认在:WEB-INF/servlet的name+"-servlet.xml" -->
    		<init-param>
    			<param-name>contextConfigLocation</param-name>
    			<param-value>classpath:spring/springmvc.xml</param-value>
    		</init-param>
    		<load-on-startup>1</load-on-startup>
    	</servlet>
    	<servlet-mapping>
    		<servlet-name>monitor</servlet-name>
    		<url-pattern>/</url-pattern>
    	</servlet-mapping>
    

    1.8 在src/main/respurce 中创建spring properties mybatis文件夹

      1.8.1 配置properties中文件

        创建db.properties 

    jdbc.driver=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql://xxxx:3308/ssm-jia?characterEncoding=utf-8
    jdbc.username=root
    jdbc.password=root
    

       创建log4j.properties

    log4j.rootLogger=INFO,CONSOLE,DayRollingFile
    
    #console
    log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
    log4j.appender.Threshold=INFO
    log4j.appender.CONSOLE.Target=System.out
    log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
    log4j.appender.CONSOLE.layout.ConversionPattern=%d - %c -%-4r [%t] %-5p %x - %m%n
    
    # dayrollingfile
    log4j.appender.DayRollingFile=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.DayRollingFile.file=C:/cxydLogs/log_
    log4j.appender.DayRollingFile.DatePattern=yyyyMMdd'.log'
    log4j.appender.DayRollingFile.layout=org.apache.log4j.PatternLayout
    log4j.appender.DayRollingFile.layout.ConversionPattern=/n/n[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
    

     1.8.2 spring文件夹下

      创建applicationContext-dao.xml applicationContext-service.xml applicationContext-trans.xml spring-mvc.xml

       1.8.2.1applicationContext-dao.xml

      

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
    	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
    	http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
    	http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
    	http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd">
    
    	<!-- 数据库连接池 -->
    	<!-- 加载配置文件 -->
    	<context:property-placeholder location="classpath:properties/*.properties" />
    	<!-- 数据库连接池 -->
    	<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
    		destroy-method="close">
    		<property name="url" value="${jdbc.url}" />
    		<property name="username" value="${jdbc.username}" />
    		<property name="password" value="${jdbc.password}" />
    		<property name="driverClassName" value="${jdbc.driver}" />
    		<property name="maxActive" value="10" />
    		<property name="minIdle" value="5" />
    	</bean>
    	<!-- 让spring管理sqlsessionfactory 使用mybatis和spring整合包中的 -->
    	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    		<!-- 数据库连接池 -->
    		<property name="dataSource" ref="dataSource" />
    		<!-- 加载mybatis的全局配置文件 -->
    		<property name="configLocation" value="classpath:mybatis/SqlMapConfig.xml" />
    	</bean>
    	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    		<property name="basePackage" value="hbsi.yfzx.mapper" />
    	</bean>
    </beans>
    

      1.8.2.2

       applicationContext-service.xml

      

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
    	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
    	http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
    	http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
    	http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd">
    
    	<!-- 包扫描器,扫描带@Service注解的类 -->
    	<context:component-scan base-package="hbsi.yfzx.service"></context:component-scan>
    	
    </beans>

      1.8.2.3

     applicationContext-trans.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
    	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
    	http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
    	http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
    	http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd">
    	<!-- 事务管理器 -->
    	<bean id="transactionManager"
    		class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    		<!-- 数据源 -->
    		<property name="dataSource" ref="dataSource" />
    	</bean>
    	<!-- 启用支持annotation-driven注解方式事务管理 -->
    	<tx:annotation-driven transaction-manager="transactionManager"/>
    	<!-- 通知 -->
    	<tx:advice id="txAdvice" transaction-manager="transactionManager">
    		<tx:attributes>
    			<!-- 传播行为 -->
    			<tx:method name="save*" propagation="REQUIRED" />
    			<tx:method name="insert*" propagation="REQUIRED" />
    			<tx:method name="add*" propagation="REQUIRED" />
    			<tx:method name="create*" propagation="REQUIRED" />
    			<tx:method name="delete*" propagation="REQUIRED" />
    			<tx:method name="update*" propagation="REQUIRED" />
    			<tx:method name="find*" propagation="SUPPORTS" read-only="true" />
    			<tx:method name="select*" propagation="SUPPORTS" read-only="true" />
    			<tx:method name="get*" propagation="SUPPORTS" read-only="true" />
    		</tx:attributes>
    	</tx:advice>
    	<!-- 切面 -->
    	<aop:config>
    		<aop:advisor advice-ref="txAdvice"
    			pointcut="execution(* hbsi.yfzx.service.*.*(..))" />
    	</aop:config>
    </beans>
    

     1.8.2.4 

    spring-mvc.xml 

    <?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:p="http://www.springframework.org/schema/p"
    	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/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
    
    	<!-- 配置包扫描器 -->
    	<context:component-scan base-package="hbsi.yfzx.controller">
    	    <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    	    <!-- 下面这个是防止事务没起作用,spring.xml的父容器先于Servlet的子容器加载生效 将
    	    	Service提前加载了,这里不用在进行加载装配了
    	     -->
    	    <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/>
    	</context:component-scan>
    	<!-- 配置注解驱动 -->
    	<mvc:annotation-driven />
    	<!-- 视图解析器 -->
    	<bean
    		class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    		<property name="prefix" value="/WEB-INF/jsp/" />
    		<property name="suffix" value=".jsp" />
    	</bean>
    
    	<bean id="multipartResolver"
    		class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    		<!-- 设定默认编码 -->
    		<property name="defaultEncoding" value="UTF-8"></property>
    		<!-- 设定文件上传的最大值5MB,5*1024*1024 -->
    		<property name="maxUploadSize" value="5242880"></property>
    	</bean>
    
    
    	<!-- 静态资源映射 -->
    	<mvc:resources location="/js/" mapping="/js/**" />
    	<mvc:resources location="/css/" mapping="/css/**" />
    
    </beans>        
    

    1.9mybatis中添加SqlMapConfig.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>
    	<typeAliases>
    	    <!-- 为hbsi.yfzx.pojo包下所有实体类配置别名 Mybatis默认的设置别名的方式就是去除类所在的包后的简单的类名
    	    	比如 hbsi.yfzx.pojo.Sysuser 这个类名的别名就是设置成User
    	     -->
    	    <package name="hbsi.yfzx.pojo"/>
    	</typeAliases>
    		<!-- 配置分页插件 -->
    	<plugins>
    		<plugin interceptor="com.github.pagehelper.PageHelper">
    			<!-- 设置数据库类型 Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL六种数据库 -->
    			<property name="dialect" value="mysql" />
    			<!-- 该参数默认为false -->
    			<!-- 设置为true时,会将RowBounds第一个参数offset当成pageNum页码使用 -->
    			<!-- 和startPage中的pageNum效果一样 -->
    			<property name="offsetAsPageNum" value="true" />
    			<!-- 该参数默认为false -->
    			<!-- 设置为true时,使用RowBounds分页会进行count查询 -->
    			<property name="rowBoundsWithCount" value="true" />
    			<!-- 3.3.0版本可用 - 分页参数合理化,默认false禁用 -->
    			<!-- 启用合理化时,如果pageNum<1会查询第一页,如果pageNum>pages会查询最后一页 -->
    			<!-- 禁用合理化时,如果pageNum<1或pageNum>pages会返回空数据 -->
    			<property name="reasonable" value="true" />
    			<!-- 支持通过Mapper接口参数来传递分页参数 -->
    			<property name="supportMethodsArguments" value="true" />
    			<!-- always总是返回PageInfo类型,check检查返回类型是否为PageInfo,none返回Page -->
    			<property name="returnPageInfo" value="check" />
    		</plugin>
    	</plugins>
    </configuration>
    

    -------------------------到此为止 ssm配置完毕,但是还存在一个跨域问题 我们需要在配置一下。

      

    package hbsi.yfzx.filter;
    
    import java.io.IOException;
    
    import javax.servlet.Filter;
    import javax.servlet.FilterChain;
    import javax.servlet.FilterConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    /**
     * 解决SSM跨域问题
     * @author jia
     *
     */
    public class SimpleCORSFilter implements Filter {
        private boolean isCross = false;
    
        @Override
        public void destroy() {
            isCross = false;
        }
    
        @Override
        public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
                throws IOException, ServletException {
            if (isCross) {
                HttpServletRequest httpServletRequest = (HttpServletRequest) request;
                HttpServletResponse httpServletResponse = (HttpServletResponse) response;
                System.out.println("拦截请求: " + httpServletRequest.getServletPath());
                httpServletResponse.setHeader("Access-Control-Allow-Origin", "*");
                httpServletResponse.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
                httpServletResponse.setHeader("Access-Control-Max-Age", "0");
                httpServletResponse.setHeader("Access-Control-Allow-Headers",
                        "Origin, No-Cache, X-Requested-With, If-Modified-Since, Pragma, Last-Modified, Cache-Control, Expires, Content-Type, X-E4M-With,userId,token");
                httpServletResponse.setHeader("Access-Control-Allow-Credentials", "true");
                httpServletResponse.setHeader("XDomainRequestAllowed", "1");
            }
            chain.doFilter(request, response);
        }
    
        @Override
        public void init(FilterConfig filterConfig) throws ServletException {
            String isCrossStr = filterConfig.getInitParameter("IsCross");
            isCross = isCrossStr.equals("true") ? true : false;
            System.out.println(isCrossStr);
        }
    
    
    
    }

     在web.xml中添加

    <!-- 跨域请求 -->
    	<filter>
    		<filter-name>SimpleCORSFilter</filter-name>
    		<filter-class>hbsi.yfzx.filter.SimpleCORSFilter</filter-class>
    		<init-param>
    			<param-name>IsCross</param-name>
    			<param-value>true</param-value>
    		</init-param>
    	</filter>
    	<filter-mapping>
    		<filter-name>SimpleCORSFilter</filter-name>
    		<url-pattern>/*</url-pattern>
    	</filter-mapping>

    配置完毕

    温馨提示,我选择的ssm版本较高 只能在tomcat8上运行 tomcat7上是用不了的。

  • 相关阅读:
    【原创】大叔问题定位分享(21)spark执行insert overwrite非常慢,比hive还要慢
    【原创】大叔经验分享(14)spark on yarn提交任务到集群后spark-submit进程一直等待
    【原创】大叔问题定位分享(20)hdfs文件create写入正常,append写入报错
    【原创】大叔问题定位分享(19)spark task在executors上分布不均
    【原创】大数据基础之Spark(4)RDD原理及代码解析
    【原创】大叔问题定位分享(18)beeline连接spark thrift有时会卡住
    【原创】大叔问题定位分享(17)spark查orc格式数据偶尔报错NullPointerException
    【原创】大叔经验分享(13)spark运行报错WARN Utils: Service 'sparkDriver' could not bind on port 0. Attempting port 1.
    linux定时任务
    source导入错码解决办法
  • 原文地址:https://www.cnblogs.com/qxlxi/p/12860942.html
Copyright © 2011-2022 走看看