springboot使用遇到的问题

最近要写新东西,想拿springboot练练手,在这记录上一些问题以及解决方案,供参考学习。

起始项目的结构大致就是我之前学习的springboot的结构,这次主要整合了mybatis和logback,数据源使用了druid,还有mybatis generator,以后或许会加入shiro,quartz(也或者不加,看有没有时间吧)。

先看整体配置
pom

<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.0modelVersion>
  <groupId>com.eatimegroupId>
  <artifactId>EatimeManageartifactId>
  <version>0.0.1-SNAPSHOTversion>
  <packaging>warpackaging>
  <url>http://maven.apache.orgurl>
  <parent>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-parentartifactId>
        <version>1.5.6.RELEASEversion>
        <relativePath>relativePath>
    parent>
     <properties>
        <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8project.reporting.outputEncoding>
        <java.version>1.8java.version>
    properties>
  <dependencies>
   <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-jdbcartifactId>
        dependency>
        <dependency>
            <groupId>org.mybatis.spring.bootgroupId>
            <artifactId>mybatis-spring-boot-starterartifactId>
            <version>1.3.0version>
        dependency>
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-thymeleafartifactId>
        dependency>
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-webartifactId>
        dependency>

        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-testartifactId>
            <scope>testscope>
        dependency>
          <dependency>  
              <groupId>org.springframework.bootgroupId>  
              <artifactId>spring-boot-starter-loggingartifactId>  
          dependency> 
        
        <dependency>
            <groupId>mysqlgroupId>
            <artifactId>mysql-connector-javaartifactId>
        dependency>
         
        <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-thymeleafartifactId>
        dependency>
        
           <dependency>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-aopartifactId>
        dependency>

        <dependency>
            <groupId>com.fasterxml.jackson.coregroupId>
            <artifactId>jackson-coreartifactId>
        dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.coregroupId>
            <artifactId>jackson-databindartifactId>
        dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.datatypegroupId>
            <artifactId>jackson-datatype-jodaartifactId>
        dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.modulegroupId>
            <artifactId>jackson-module-parameter-namesartifactId>
        dependency>
        
        <dependency>
            <groupId>com.github.pagehelpergroupId>
            <artifactId>pagehelper-spring-boot-starterartifactId>
            <version>1.1.2version>
        dependency>
        
        <dependency>
            <groupId>com.alibabagroupId>
            <artifactId>druid-spring-boot-starterartifactId>
            <version>1.1.0version>
        dependency>

  dependencies>
  <build>
  <plugins>
        <plugin>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-maven-pluginartifactId>
        plugin>
         
            <plugin>
                <groupId>org.mybatis.generatorgroupId>
                <artifactId>mybatis-generator-maven-pluginartifactId>
                <version>1.3.2version>
                <configuration>
                    <configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xmlconfigurationFile>
                    <overwrite>trueoverwrite>
                    <verbose>trueverbose>
                configuration>
            plugin>
    plugins>
    <finalName>springbootfinalName>
  build>
project>

yml

spring:
  profiles:
    active: dev
  datasource:
    url: jdbc:mysql://rm-2ze6s44x54ymbfi3no.mysql.rds.aliyuncs.com:3306/eatime
    username: root
    password: ******
    # 使用druid数据源
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.jdbc.Driver
    filters: stat
    maxActive: 20
    initialSize: 5
    maxWait: 60000
    minIdle: 20
    timeBetweenEvictionRunsMillis: 60000
    minEvictableIdleTimeMillis: 300000
    validationQuery: SELECT 1 FROM DUAL  
    testWhileIdle: true
    testOnBorrow: false
    testOnReturn: false
    poolPreparedStatements: true
    maxOpenPreparedStatements: 20
  http:  
    encoding.charset: UTF-8  
    encoding.enable: true  
    encoding.force: true 
mybatis:
  mapper-locations: classpath:mapping/*.xml
  type-aliases-package: com.eatime.mapper


#pagehelper分页插件
pagehelper:
    helperDialect: mysql
    reasonable: true
    supportMethodsArguments: true
    params: count=countSql
#日志
logging:  
    config: classpath:config/logback-spring.xml 

generatorConfig



<generatorConfiguration>
    
    <classPathEntry  location="C:\Users\dell\.m2\repository\mysql\mysql-connector-java\5.1.43\mysql-connector-java-5.1.43.jar"/>
    <context id="DB2Tables"  targetRuntime="MyBatis3">
        <commentGenerator>
            <property name="suppressDate" value="true"/>
            
            <property name="suppressAllComments" value="true"/>
        commentGenerator>
        
        <jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://rm-2ze6s44x54ymbfi3no.mysql.rds.aliyuncs.com:3306/eatime" userId="root" password="Seekang2017">
        jdbcConnection>
        <javaTypeResolver>
            <property name="eatime" value="false"/>
        javaTypeResolver>
        
        <javaModelGenerator targetPackage="com.eatime.model" targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
            <property name="trimStrings" value="true"/>
        javaModelGenerator>
        
        <sqlMapGenerator targetPackage="mapping" targetProject="src/main/resources">
            <property name="enableSubPackages" value="true"/>
        sqlMapGenerator>
        
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.eatime.mapper" targetProject="src/main/java">
            <property name="enableSubPackages" value="true"/>
        javaClientGenerator>
        
        <table tableName="static_data" domainObjectName="StaticData" enableCountByExample="true" enableUpdateByExample="true" enableDeleteByExample="true" enableSelectByExample="true" selectByExampleQueryId="true">table>
    context>
generatorConfiguration>

logback配置

  
<configuration debug="false" scan="true" scanPeriod="10 seconds">  
    <include resource="org/springframework/boot/logging/logback/base.xml"/>  
    <contextName>logbackcontextName>  
    <logger name="org.springframework.web" level="debug"/>  
    <logger name="org.springboot.sample" level="debug" />  
    <logger name="com.alibaba.druid" level="debug" />  
    <property name="log.path" value="D:/log/logback.log" />  

    <appender name="file"  
              class="ch.qos.logback.core.rolling.RollingFileAppender">  
        <file>${log.path}file>  
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">  
              
            <fileNamePattern>${log.path}.%d{yyyy-MM-dd}.zipfileNamePattern>  
        rollingPolicy>  
        <encoder>  
            <pattern>%date %level [%thread] %logger{36} [%file : %line] %msg%n  
            pattern>  
        encoder>  
    appender>  
      
    <logger name="com.eatime" level="debug" />  

configuration> 

整体结构
springboot使用遇到的问题_第1张图片
dev 和prod 里只配置了端口号,
application.properties就是想试用下,所有配置都在application.yml里

先说第一个问题,数据源 一直为null,
具体表现在查询一直报一个空指针的异常,还有druid的监控显示“(*) property for user to setup”
最后查到了pom,原来是配置了2个druid
一个是druid-spring-boot-starter,一个是druid,版本还不一样,就把druid的版本删除了,查询正常,监控正常.

你可能感兴趣的:(经验)