Spring boot + maven项目搭建

 

一、搭建maven项目

1.创建maven项目

 

Spring boot + maven项目搭建_第1张图片

GroupID:是项目组织唯一的标识符,实际对应JAVA的包的结构,是main目录里java的目录结构。
ArtifactID:就是项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称。

 

groupid和artifactId被统称为“坐标”是为了保证项目唯一性而提出的,如果你要把你项目弄到maven本地仓库去,你想要找到你的项目就必须根据这两个id去查找。
groupId一般分为多个段,这里我只说两段,第一段为域,第二段为公司名称。域又分为org、com、cn等等许多,其中org为非营利组织,com为商业组织。举个apache公司的tomcat项目例子:这个项目的groupId是org.apache,它的域是org(因为tomcat是非营利项目),公司名称是apache,artigactId是tomcat。
  比如我创建一个项目,我一般会将groupId设置为cn.lich,cn表示域为中国,lich是自己名字缩写,artifactId设置为testProj,表示你这个项目的名称是testProj,依照这个设置,你的包结构最好是cn.lich.testProj打头的,如果有个StudentDao,它的全路径就是cn.lich.testProj.dao.StudentDao

 

2.添加web.xml文件

         在新创建的maven项目时,是缺少WEB-INF文件夹以及下面的web.xml文件,而pom.xml文件会报错:pom.xml出现web.xml is missing and is set totrue错误,可以通过两种方式来解决这个问题。

 

a.添加web.xml文件

右击项目名称,选择java EETools下的Generate Deployment Descriptor Stub,自动添加web.xml文件

Spring boot + maven项目搭建_第2张图片

b.配置参数

在pom.xml文件下配置如下参数即可:


    
        
            org.apache.maven.plugins
            maven-war-plugin
            2.6
            
                false
            
        
    

 

或者


    false

 

3.配置pom.xml文件

导入相关jar、maven的spring-boot-maven-plugin、配置java版本(不配置的话默认父类配置的是1.6)

 

a.导入jar的相关dependency

可以到此网站去找相关依赖:http://mvnrepository.com/



    org.springframework.boot
    spring-boot-starter-parent
    1.5.6.RELEASE
    

 

如果是引用了parent公共资源版本,则引入web时无需引入版本号以及相关jar


    
    
    
        org.springframework.boot
        spring-boot-starter-web
    

 

b.配置maven插件:


       
             org.springframework.boot
             spring-boot-maven-plugin
             1.3.5.RELEASE
             
                 ${start-class}
                 ZIP
             
             
                 
                     
                        repackage
                     
                 
             
        

 

你还可以指定要执行的类,如果不指定的话,Spring会找有这个【publicstatic void main(String[] args)】方法的类,当做可执行的类。

如果你想指定的话,可以用下面两个方法:

1,如果你的POM是继承spring-boot-starter-parent的话,只需要下面的指定就行。


   
   com.mycorp.starter.HelloWorldApplication

 

2,如果你的POM不是继承spring-boot-starter-parent的话,需要下面的指定具体执行的类。 


      org.springframework.boot
      spring-boot-maven-plugin
      1.3.5.RELEASE
      
          ${start-class}
          ZIP
      
      
          
              
                   repackage
              
          
      

 

c.配置java版本:


          
              
                  maven-compiler-plugin
                  
                      1.8
                      1.8
                  
              
          

 

d.热部署:

当我们修改文件和创建文件时,都需要重新启动项目。这样频繁的操作很浪费时间,配置热部署可以让项目自动加载变化的文件,省去的手动操作。

在 pom.xml 文件中添加如下配置:



    org.springframework.boot
    spring-boot-devtools
    true
    true

    
    
    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
                
                
                true
            
        
    

 

配置好 pom.xml 文件后,我们启动项目,随便创建/修改一个文件并保存,会发现控制台打印 springboot 重新加载文件的信息

        

e.其他配置:


    UTF-8
    UTF-8
    1.8

 

二、创建spring boot相关目录及配置

1.搭建spring的目录结构

创建 src/main/resources源文件目录,并在该目录下创建 application.properties 文件、static 和 templates 的文件夹。

application.properties:用于配置项目运行所需的配置数据。

static:用于存放静态资源,如:css、js、图片等。

templates:用于存放模板文件。

 

目录结构如下:

Spring boot + maven项目搭建_第3张图片

2.创建启动类

a.创建启动类

在com.test包下创建启动类,如下图:

Spring boot + maven项目搭建_第4张图片

b.启动类写法

在Application.java中具体入口写法如下图:

/**
 * 该注解指定项目为springboot,由此类当作程序入口
 * 自动装配 web 依赖的环境
**/
@SpringBootApplication
publicclass Application {

     publicstaticvoid main(String[] args) {
         SpringApplication.run(Application.class, args);
     }
}

    

         之前用户使用的是3个注解注解他们的main类。

分别是@Configuration,@EnableAutoConfiguration,@ComponentScan。由于这些注解一般都是一起使用,spring boot提供了一个统一的注解@SpringBootApplication。

默认属性:

@SpringBootApplication=@Configuration+ @EnableAutoConfiguration + @ComponentScan。

 

3.案例演示

         在com.test下创建一个conrtoller类,如下图:

Spring boot + maven项目搭建_第5张图片

    在 SpringbootApplication 文件中右键 Run as -> Java Application。当看到 “Tomcat started on port(s): 8080 (http)” 字样说明启动成功。

打开浏览器访问 http://localhost:8080/,结果如下:

三、多环境切换

application.properties 是 springboot 在运行中所需要的配置信息。

当我们在开发阶段,使用自己的机器开发,测试的时候需要用的测试服务器测试,上线时使用正式环境的服务器。

这三种环境需要的配置信息都不一样,当我们切换环境运行项目时,需要手动的修改多出配置信息,非常容易出错。

为了解决上述问题,springboot 提供多环境配置的机制,让开发者非常容易的根据需求而切换不同的配置环境。

在 src/main/resources 目录下创建三个配置文件:

application-dev.properties:用于开发环境

application-test.properties:用于测试环境

application-prod.properties:用于生产环境

我们可以在这个三个配置文件中设置不同的信息,application.properties 配置公共的信息。

在application.properties 中配置:

                   spring.profiles.active=dev

 

表示激活application-dev.properties 文件配置, springboot 会加载使用 application.properties 和application-dev.properties 配置文件的信息。

同理,可将spring.profiles.active 的值修改成 test 或 prod 达到切换环境的目的。演示图如下:

Spring boot + maven项目搭建_第6张图片

 

四、配置日志

1.配置logback(官方推荐使用)

         springboot 默认会加载 classpath:logback-spring.xml 或者classpath:logback-spring.groovy。

如需要自定义文件名称,在application.properties 中配置 logging.config 选项即可。

在 src/main/resources 下创建 logback-spring.xml 文件,内容如下:        




    
    

    
    

    
    

    
    
        
            
                ${PATTERN}
            
        
        
        
            
        
    

    
    
        
        
            
            ${TEST_FILE_PATH}
            
                
                ${TEST_FILE_PATH}/info.%d{yyyy-MM-dd}.log
                
                100
            
            
                ${PATTERN}
            
        
        
            
        
    

    
    
        
            ${PRO_FILE_PATH}
            
                ${PRO_FILE_PATH}/warn.%d{yyyy-MM-dd}.log
                100
            
            
                ${PATTERN}
            
        

        
            
        
    

 

其中,springProfile 标签的 name 属性对应application.properties 中的 spring.profiles.active 的配置。

即spring.profiles.active 的值可以看作是日志配置文件中对应的 springProfile 是否生效的开关。

 

2.配置log4j2

a.添加依赖


    org.springframework.boot
    spring-boot-starter-log4j2

 

b.配置日志文件

spring boot 默认会加载classpath:log4j2.xml 或者 classpath:log4j2-spring.xml。

如需要自定义文件名称,在 application.properties 中配置 logging.config 选项即可。

log4j2.xml 文件内容如下:        




    
        %d{yyyy-MM-ddHH:mm:ss.SSS} |-%-5level
            [%thread]%c [%L] -| %msg%n
    

    
        
            
        
    

    
        
        
            
        
    

 

log4j2 不能像 logback 那样在一个文件中设置多个环境的配置数据,只能命名 3 个不同名的日志文件,分别在 application-dev,application-test 和 application-prod 中配置 logging.config 选项。

除了在日志配置文件中设置参数之外,还可以在 application-*.properties 中设置,日志相关的配置:

logging.config # 日志配置文件路径,如 classpath:logback-spring.xml

logging.exception-conversion-word # 记录异常时使用的转换词

logging.file # 记录日志的文件名称,如:test.log

logging.level.* #日志映射,如:logging.level.root=WARN,logging.level.org.springframework.web=DEBUG

logging.path # 记录日志的文件路径,如:d:/

logging.pattern.console # 向控制台输出的日志格式,只支持默认的 logback 设置。

logging.pattern.file # 向记录日志文件输出的日志格式,只支持默认的 logback 设置。

logging.pattern.level # 用于呈现日志级别的格式,只支持默认的 logback 设置。

logging.register-shutdown-hook # 初始化时为日志系统注册一个关闭钩子

 

你可能感兴趣的:(spring,boot+maven)