zoukankan      html  css  js  c++  java
  • 创建sprngboot项目

    生成项目

    https://start.spring.io/

    项目依赖

    <?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    	<modelVersion>4.0.0</modelVersion>
    	<parent>
    		<groupId>org.springframework.boot</groupId>
    		<artifactId>spring-boot-starter-parent</artifactId>
    		<version>2.0.0.RELEASE</version>
    		<relativePath/> <!-- lookup parent from repository -->
    	</parent>
    	<groupId>com.hd</groupId>
    	<artifactId>vmds</artifactId>
    	<version>0.0.1-SNAPSHOT</version>
    	<name>vmds</name>
    	<description>Demo</description>
    
    	<!-- 配置java版本(必配) -->
    	<properties>
    		<java.version>1.8</java.version>
    	</properties>
    
    	<dependencies>
    		<!--核心 POM,包含自动配置支持、日志库和对 YAML 配置文件的支持-->
    		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter</artifactId>
    		</dependency>
    
    		<!--核心 POM,包含自动配置支持、日志库和对 YAML 配置文件的支持-->
    		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter-test</artifactId>
    			<scope>test</scope>
    			<exclusions>
    				<exclusion>
    					<groupId>org.junit.vintage</groupId>
    					<artifactId>junit-vintage-engine</artifactId>
    				</exclusion>
    			</exclusions>
    		</dependency>
    
    		<!--支持使用 JDBC 访问数据库-->
    		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter-jdbc</artifactId>
    		</dependency>
    
    		<!-- springboot的启动依赖(集成tomcat)  -->
    		<dependency>
    			<groupId>org.springframework.boot</groupId>
    			<artifactId>spring-boot-starter-web</artifactId>
    		</dependency>
    
    		<!--mybatis-->
    		<dependency>
    			<groupId>org.mybatis.spring.boot</groupId>
    			<artifactId>mybatis-spring-boot-starter</artifactId>
    			<version>2.1.1</version>
    		</dependency>
    
    		<!--Druid-->
    		<dependency>
    			<groupId>com.alibaba</groupId>
    			<artifactId>druid-spring-boot-starter</artifactId>
    			<version>1.1.10</version>
    		</dependency>
    
    		<!--mysql-->
    		<dependency>
    			<groupId>mysql</groupId>
    			<artifactId>mysql-connector-java</artifactId>
    			<scope>runtime</scope>
    		</dependency>
    
    		<!--Junit-->
    		<dependency>
    			<groupId>junit</groupId>
    			<artifactId>junit</artifactId>
    			<scope>test</scope>
    		</dependency>
    	</dependencies>
    
    	<build>
    		<plugins>
    			<plugin>
    				<groupId>org.springframework.boot</groupId>
    				<artifactId>spring-boot-maven-plugin</artifactId>
    			</plugin>
    		</plugins>
    	</build>
    
    </project>
    
    

    配置

    create file application.yml

    server:
      port: 8080
     
    spring:
      datasource:
          username: root
          password: 123456
          url: jdbc:mysql://localhost:3306/nnobita?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
          driver-class-name: com.mysql.jdbc.Driver
          type: com.alibaba.druid.pool.DruidDataSource
          druid:
            initial-size: 8
            min-idle: 1
            max-active: 20
            max-wait: 60000
            time-between-eviction-runsMillis: 60000
            min-evictable-idle-timeMillis: 300000
            validation-query: select 'x' FROM DUAL
            test-while-idle: true
            test-on-borrow: false
            test-on-return: false
            pool-prepared-statements: true
            max-open-prepared-statements: 20
            max-pool-prepared-statement-per-connection-size: 20
            filters: stat
            connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
            use-global-data-source-stat: true
     
    mybatis:
      mapper-locations: classpath:mapper/*.xml
      type-aliases-package: com.hd.entity
    
    logging:
      config: classpath:logback-spring.xml
      # 这里可以是包名也可以是类名
      # DEBUG<INFO<WARN<ERROR<FATAL
      level:
        com:
          hd:
            dao : debug
    

    logback配置

    <?xml version="1.0" encoding="UTF-8" ?>
    <configuration>
    
        <!--0. 日志格式和颜色渲染 -->
        <!-- 彩色日志依赖的渲染类 -->
        <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
        <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
        <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
        <!-- 彩色日志格式 -->
        <property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
    
        <!-- 配置控制台输出 -->
        <appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
            <!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
            <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
                <level>debug</level>
            </filter>
            <encoder>
                <pattern>${CONSOLE_LOG_PATTERN}</pattern>
                <!-- 设置字符集 -->
                <charset>UTF-8</charset>
            </encoder>
        </appender>
    
        <!-- 配置文件输出(Info)-->
        <appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <encoder>
                <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
            </encoder>
            <!-- 滚动策略-->
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <!-- 文件位置 -->
                <fileNamePattern>e:/log/info-%d.log</fileNamePattern>
            </rollingPolicy>
        </appender>
    
        <!-- 配置文件输出(Error)-->
        <appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <!--添加 范围 过滤-->
            <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
                <level>ERROR</level>
            </filter>
            <encoder>
                <pattern>%d -- %msg%n</pattern>
            </encoder>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <fileNamePattern>e:/log/error-%d.log</fileNamePattern>
            </rollingPolicy>
        </appender>
    
        <root level="info">
            <appender-ref ref="consoleLog" />
            <appender-ref ref="fileInfoLog" />
            <appender-ref ref="fileErrorLog" />
        </root>
    </configuration>
    

    Druid配置类

    /**
     * druid监控
     */
    @Configuration
    public class DruidConfiguration {
        @Bean
        public ServletRegistrationBean statViewServlet() {
            ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
            //白名单:
            servletRegistrationBean.addInitParameter("allow", "127.0.0.1");
            //IP黑名单 (存在共同时,deny优先于allow) : 如果满足deny的即提示:Sorry, you are not permitted to view this page.
            servletRegistrationBean.addInitParameter("deny", "192.168.1.100");
            //登录查看信息的账号密码.
            servletRegistrationBean.addInitParameter("loginUsername", "druid");
            servletRegistrationBean.addInitParameter("loginPassword", "12345678");
            //是否能够重置数据.
            servletRegistrationBean.addInitParameter("resetEnable", "false");
            return servletRegistrationBean;
        }
    
    //    @Bean
    //    public FilterRegistrationBean statFilter() {
    //        FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());
    //        //添加过滤规则.
    //        filterRegistrationBean.addUrlPatterns("/*");
    //        //添加不需要忽略的格式信息.
    //        filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
    //        return filterRegistrationBean;
    //    }
    
        @Bean
        PersistenceExceptionTranslationPostProcessor persistenceExceptionTranslationPostProcessor() {
            return new PersistenceExceptionTranslationPostProcessor();
        }
    
        //配置数据库的基本链接信息
    //    @Bean(name = "dataSource")
    //    @Primary
    //    @ConfigurationProperties(prefix = "spring.datasource")    //可以在application.properties中直接导入
    //    public DataSource dataSource() {
    //        return DataSourceBuilder.create().type(com.alibaba.druid.pool.DruidDataSource.class).build();
    //    }
    
    //    @Bean
    //    public SqlSessionFactoryBean sqlSessionFactory(@Qualifier("dataSource") DataSource dataSource) throws Exception {
    //        SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
    //        bean.setDataSource(dataSource);
    //        PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
    //        bean.setMapperLocations(resolver.getResources("classpath:/mappers/*.xml"));
    //        return bean;
    //    }
    }
    

    启动类

    • @MapperScan:扫描dao接口
    @MapperScan("com.hd.dao")
    @SpringBootApplication
    public class VmdsApplication {
    
    	public static void main(String[] args) {
    		SpringApplication.run(VmdsApplication.class, args);
    	}
    
    }
    

    entity

    package com.hd.entity;
    
    public class Device {
        private int device_id;
        private String device_name;
        private int device_num;
        private String curr_vers;
        。。。
    }
    
    

    mapper

    public interface DeviceMapper {
        List<Device> list();
    }
    
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE mapper
    	PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    	"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    
    	<mapper namespace="com.hd.dao.DeviceMapper">
    	    <select id="list" resultType="Device">
    	        select * from   tb_device
    	    </select>
    	</mapper>
    

    项目结构

  • 相关阅读:
    0129 System类 Math类 Arrays类 大数据运算
    0127 基本类型包装类
    'telnet' 不是内部或外部命令,也不是可运行的程序 解决方案
    删除时报org.springframework.dao.DataIntegrityViolationException
    mapper自动识别驼峰配置 spring MVC
    spring Security如何debug源码
    公司tomcat项目启动
    java.util.ConcurrentModificationException: null 异常解决
    @Transactional 学习
    mangoDB初探
  • 原文地址:https://www.cnblogs.com/xiongyungang/p/12580012.html
Copyright © 2011-2022 走看看