当前位置: 移动技术网 > IT编程>开发语言>Java > springboot+maven快速构建项目的示例代码

springboot+maven快速构建项目的示例代码

2019年07月19日  | 移动技术网IT编程  | 我要评论
最近公司运用springboot构建项目,确实比ssh搭建要快很多。 1.首先要下载maven,用maven管理项目很方便,下载完maven配置好环境,maven我就不细

最近公司运用springboot构建项目,确实比ssh搭建要快很多。

1.首先要下载maven,用maven管理项目很方便,下载完maven配置好环境,maven我就不细说了。

2.创建一个maven项目,pom.xml文件里面写这些:

<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.0</modelversion>
  <groupid>springboot</groupid>
  <artifactid>testspringboot</artifactid>
  <version>0.0.1-snapshot</version>
  <name>testspringboot</name>
  <packaging>jar</packaging>

  <!-- 继承父包 -->
  <parent>
    <groupid>org.springframework.boot</groupid>
    <artifactid>spring-boot-starter-parent</artifactid>
    <version>1.1.3.release</version>
    <relativepath></relativepath>
  </parent>

  <!-- spring-boot的web启动的jar包 -->
  <dependencies>
    <dependency>
      <groupid>org.springframework.boot</groupid>
      <artifactid>spring-boot-starter-web</artifactid>
    </dependency>

  <!--jpa的jar包 ,操作数据库的,类似hibernate-->
    <dependency>
      <groupid>org.springframework.boot</groupid>
      <artifactid>spring-boot-starter-data-jpa</artifactid>
    </dependency>
    
    <!--mysql驱动-->
    <dependency>
      <groupid>mysql</groupid>
      <artifactid>mysql-connector-java</artifactid>
    </dependency>
    
    <!--thymeleaf模板jar,是很不错的html数据传递取值,类似jsp的jstl-->
    <dependency>
      <groupid>org.springframework.boot</groupid>
      <artifactid>spring-boot-starter-thymeleaf</artifactid>
    </dependency>
  </dependencies>

  <!--maven的插件-->
  <build>
    <plugins>
      <plugin>
        <groupid>org.springframework.boot</groupid>
        <artifactid>spring-boot-maven-plugin</artifactid>
      </plugin>
    </plugins>
    
  <!-- 配置java版本 不配置的话默认父类配置的是1.6-->
  <pluginmanagement>
   <plugins>
    <plugin>
     <artifactid>maven-compiler-plugin</artifactid>
     <configuration>
      <source>1.7</source>
      <target>1.7</target>
     </configuration>
    </plugin>
   </plugins>
  </pluginmanagement>
 </build>
</project>

3.创建的文件目录如图:

4.在com.boot(即最外层目录文件)下写一个如下main方法:

package com.boot;

import org.springframework.boot.springapplication;
import org.springframework.boot.autoconfigure.enableautoconfiguration;
import org.springframework.context.annotation.componentscan;
import org.springframework.context.annotation.configuration;

@configuration
@enableautoconfiguration
@componentscan
public class application {
   public static void main(string[] args) {
     springapplication.run(application.class, args);
   }
   
}

5.在com.boot.web下创建一个类如下:

package com.boot.web;

import org.springframework.stereotype.controller;
import org.springframework.web.bind.annotation.requestmapping;
import org.springframework.web.bind.annotation.responsebody;

@controller
public class maincontroller {
//  @requestmapping("")
//  public string index(){
//    return "examples/index";
//  }
   @requestmapping("/")
   @responsebody
   string home() {
    return "hello world!";
   }
}

@requestmapping     @responsebody这两个注解都是springmvc的,不懂得可以看springmvc

6.在resources下增加一个application.properties文件

文件内容如下配置:

spring.datasource.platform=mysql
spring.datasource.url=jdbc:mysql://localhost/springboot?useunicode=true&characterencoding=utf-8&zerodatetimebehavior=converttonull&transformedbitisboolean=true&autoreconnect=true&failoverreadonly=false
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driverclassname=com.mysql.jdbc.driver
# advanced configuration...
spring.datasource.max-active=50
spring.datasource.max-idle=6
spring.datasource.min-idle=2
spring.datasource.initial-size=6

#create table
spring.jpa.hibernate.ddl-auto=validate



server.port=8080
server.session-timeout=30
server.tomcat.uri-encoding=utf-8


spring.thymeleaf.prefix=classpath:templates/
spring.thymeleaf.suffix=.html
spring.thymeleaf.mode=html5
spring.thymeleaf.encoding=utf-8
spring.thymeleaf.content-type=text/html 
spring.thymeleaf.cache=false

该文件的配置可以参考springboot的官网

该文件的全部参数配置;如下(摘自官网)

# ===================================================================
# common spring boot properties
#
# this sample file is provided as a guideline. do not copy it in its
# entirety to your own application.        ^^^
# ===================================================================

# ----------------------------------------
# core properties
# ----------------------------------------

# spring config (configfileapplicationlistener)
spring.config.name= # config file name (default to 'application')
spring.config.location= # location of config file

# profiles
spring.profiles.active= # comma list of active profiles

# application settings (springapplication)
spring.main.sources=
spring.main.web-environment= # detect by default
spring.main.show-banner=true
spring.main....= # see class for all properties

# logging
logging.path=/var/logs
logging.file=myapp.log
logging.config= # location of config file (default classpath:logback.xml for logback)
logging.level.*= # levels for loggers, e.g. "logging.level.org.springframework=debug" (trace, debug, info, warn, error, fatal, off)

# identity (contextidapplicationcontextinitializer)
spring.application.name=
spring.application.index=

# embedded server configuration (serverproperties)
server.port=8080
server.address= # bind to a specific nic
server.session-timeout= # session timeout in seconds
server.context-path= # the context path, defaults to '/'
server.servlet-path= # the servlet path, defaults to '/'
server.ssl.client-auth= # want or need
server.ssl.key-alias=
server.ssl.key-password=
server.ssl.key-store=
server.ssl.key-store-password=
server.ssl.key-store-provider=
server.ssl.key-store-type=
server.ssl.protocol=tls
server.ssl.trust-store=
server.ssl.trust-store-password=
server.ssl.trust-store-provider=
server.ssl.trust-store-type=
server.tomcat.access-log-pattern= # log pattern of the access log
server.tomcat.access-log-enabled=false # is access logging enabled
server.tomcat.internal-proxies=10\.\d{1,3}\.\d{1,3}\.\d{1,3}|\
    192\.168\.\d{1,3}\.\d{1,3}|\
    169\.254\.\d{1,3}\.\d{1,3}|\
    127\.\d{1,3}\.\d{1,3}\.\d{1,3} # regular expression matching trusted ip addresses
server.tomcat.protocol-header=x-forwarded-proto # front end proxy forward header
server.tomcat.port-header= # front end proxy port header
server.tomcat.remote-ip-header=x-forwarded-for
server.tomcat.basedir=/tmp # base dir (usually not needed, defaults to tmp)
server.tomcat.background-processor-delay=30; # in seconds
server.tomcat.max-threads = 0 # number of threads in protocol handler
server.tomcat.uri-encoding = utf-8 # character encoding to use for url decoding

# spring mvc (httpmapperproperties)
http.mappers.json-pretty-print=false # pretty print json
http.mappers.json-sort-keys=false # sort keys
spring.mvc.locale= # set fixed locale, e.g. en_uk
spring.mvc.date-format= # set fixed date format, e.g. dd/mm/yyyy
spring.mvc.message-codes-resolver-format= # prefix_error_code / postfix_error_code
spring.view.prefix= # mvc view prefix
spring.view.suffix= # ... and suffix
spring.resources.cache-period= # cache timeouts in headers sent to browser
spring.resources.add-mappings=true # if default mappings should be added

# jackson (jacksonproperties)
spring.jackson.date-format= # date format string (e.g. yyyy-mm-dd hh:mm:ss), or a fully-qualified date format class name (e.g. com.fasterxml.jackson.databind.util.iso8601dateformat)
spring.jackson.property-naming-strategy= # one of the constants on jackson's propertynamingstrategy (e.g. camel_case_to_lower_case_with_underscores) or the fully-qualified class name of a propertynamingstrategy subclass
spring.jackson.deserialization.*= # see jackson's deserializationfeature
spring.jackson.generator.*= # see jackson's jsongenerator.feature
spring.jackson.mapper.*= # see jackson's mapperfeature
spring.jackson.parser.*= # see jackson's jsonparser.feature
spring.jackson.serialization.*= # see jackson's serializationfeature

# thymeleaf (thymeleafautoconfiguration)
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
spring.thymeleaf.mode=html5
spring.thymeleaf.encoding=utf-8
spring.thymeleaf.content-type=text/html # ;charset=<encoding> is added
spring.thymeleaf.cache=true # set to false for hot refresh

# freemarker (freemarkerautoconfiguration)
spring.freemarker.allowrequestoverride=false
spring.freemarker.cache=true
spring.freemarker.checktemplatelocation=true
spring.freemarker.charset=utf-8
spring.freemarker.contenttype=text/html
spring.freemarker.exposerequestattributes=false
spring.freemarker.exposesessionattributes=false
spring.freemarker.exposespringmacrohelpers=false
spring.freemarker.prefix=
spring.freemarker.requestcontextattribute=
spring.freemarker.settings.*=
spring.freemarker.suffix=.ftl
spring.freemarker.templateloaderpath=classpath:/templates/ # comma-separated list
spring.freemarker.viewnames= # whitelist of view names that can be resolved

# groovy templates (groovytemplateautoconfiguration)
spring.groovy.template.cache=true
spring.groovy.template.charset=utf-8
spring.groovy.template.configuration.*= # see groovy's templateconfiguration
spring.groovy.template.contenttype=text/html
spring.groovy.template.prefix=classpath:/templates/
spring.groovy.template.suffix=.tpl
spring.groovy.template.viewnames= # whitelist of view names that can be resolved

# velocity templates (velocityautoconfiguration)
spring.velocity.allowrequestoverride=false
spring.velocity.cache=true
spring.velocity.checktemplatelocation=true
spring.velocity.charset=utf-8
spring.velocity.contenttype=text/html
spring.velocity.datetoolattribute=
spring.velocity.exposerequestattributes=false
spring.velocity.exposesessionattributes=false
spring.velocity.exposespringmacrohelpers=false
spring.velocity.numbertoolattribute=
spring.velocity.prefix=
spring.velocity.properties.*=
spring.velocity.requestcontextattribute=
spring.velocity.resourceloaderpath=classpath:/templates/
spring.velocity.suffix=.vm
spring.velocity.viewnames= # whitelist of view names that can be resolved

# internationalization (messagesourceautoconfiguration)
spring.messages.basename=messages
spring.messages.cacheseconds=-1
spring.messages.encoding=utf-8


# security (securityproperties)
security.user.name=user # login username
security.user.password= # login password
security.user.role=user # role assigned to the user
security.require-ssl=false # advanced settings ...
security.enable-csrf=false
security.basic.enabled=true
security.basic.realm=spring
security.basic.path= # /**
security.filter-order=0
security.headers.xss=false
security.headers.cache=false
security.headers.frame=false
security.headers.contenttype=false
security.headers.hsts=all # none / domain / all
security.sessions=stateless # always / never / if_required / stateless
security.ignored=false

# datasource (datasourceautoconfiguration & datasourceproperties)
spring.datasource.name= # name of the data source
spring.datasource.initialize=true # populate using data.sql
spring.datasource.schema= # a schema (ddl) script resource reference
spring.datasource.data= # a data (dml) script resource reference
spring.datasource.sqlscriptencoding= # a charset for reading sql scripts
spring.datasource.platform= # the platform to use in the schema resource (schema-${platform}.sql)
spring.datasource.continueonerror=false # continue even if can't be initialized
spring.datasource.separator=; # statement separator in sql initialization scripts
spring.datasource.driver-class-name= # jdbc settings...
spring.datasource.url=
spring.datasource.username=
spring.datasource.password=
spring.datasource.jndi-name # for jndi lookup (class, url, username & password are ignored when set)
spring.datasource.max-active=100 # advanced configuration...
spring.datasource.max-idle=8
spring.datasource.min-idle=8
spring.datasource.initial-size=10
spring.datasource.validation-query=
spring.datasource.test-on-borrow=false
spring.datasource.test-on-return=false
spring.datasource.test-while-idle=
spring.datasource.time-between-eviction-runs-millis=
spring.datasource.min-evictable-idle-time-millis=
spring.datasource.max-wait=

# mongodb (mongoproperties)
spring.data.mongodb.host= # the db host
spring.data.mongodb.port=27017 # the connection port (defaults to 27107)
spring.data.mongodb.uri=mongodb://localhost/test # connection url
spring.data.mongo.repositories.enabled=true # if spring data repository support is enabled

# jpa (jpabaseconfiguration, hibernatejpaautoconfiguration)
spring.jpa.properties.*= # properties to set on the jpa connection
spring.jpa.openinview=true
spring.jpa.show-sql=true
spring.jpa.database-platform=
spring.jpa.database=
spring.jpa.generate-ddl=false # ignored by hibernate, might be useful for other vendors
spring.jpa.hibernate.naming-strategy= # naming classname
spring.jpa.hibernate.ddl-auto= # defaults to create-drop for embedded dbs
spring.data.jpa.repositories.enabled=true # if spring data repository support is enabled

# jta (jtaautoconfiguration)
spring.jta.log-dir= # transaction log dir
spring.jta.*= # technology specific configuration

# solr (solrproperties})
spring.data.solr.host=http://127.0.0.1:8983/solr
spring.data.solr.zkhost=
spring.data.solr.repositories.enabled=true # if spring data repository support is enabled

# elasticsearch (elasticsearchproperties})
spring.data.elasticsearch.cluster-name= # the cluster name (defaults to elasticsearch)
spring.data.elasticsearch.cluster-nodes= # the address(es) of the server node (comma-separated; if not specified starts a client node)
spring.data.elasticsearch.repositories.enabled=true # if spring data repository support is enabled

# data reset (repositoryrestconfiguration})
spring.data.rest.baseuri=foo # base uri against which the exporter should calculate its links

# flyway (flywayproperties)
flyway.locations=classpath:db/migrations # locations of migrations scripts
flyway.schemas= # schemas to update
flyway.initversion= 1 # version to start migration
flyway.sql-migration-prefix=v
flyway.sql-migration-suffix=.sql
flyway.enabled=true
flyway.url= # jdbc url if you want flyway to create its own datasource
flyway.user= # jdbc username if you want flyway to create its own datasource
flyway.password= # jdbc password if you want flyway to create its own datasource

# liquibase (liquibaseproperties)
liquibase.change-log=classpath:/db/changelog/db.changelog-master.yaml
liquibase.contexts= # runtime contexts to use
liquibase.default-schema= # default database schema to use
liquibase.drop-first=false
liquibase.enabled=true
liquibase.url= # specific jdbc url (if not set the default datasource is used)
liquibase.user= # user name for liquibase.url
liquibase.password= # password for liquibase.url

# jmx
spring.jmx.enabled=true # expose mbeans from spring

# rabbit (rabbitproperties)
spring.rabbitmq.host= # connection host
spring.rabbitmq.port= # connection port
spring.rabbitmq.addresses= # connection addresses (e.g. myhost:9999,otherhost:1111)
spring.rabbitmq.username= # login user
spring.rabbitmq.password= # login password
spring.rabbitmq.virtualhost=
spring.rabbitmq.dynamic=

# redis (redisproperties)
spring.redis.host=localhost # server host
spring.redis.password= # server password
spring.redis.port=6379 # connection port
spring.redis.pool.max-idle=8 # pool settings ...
spring.redis.pool.min-idle=0
spring.redis.pool.max-active=8
spring.redis.pool.max-wait=-1
spring.redis.sentinel.master= # name of redis server
spring.redis.sentinel.nodes= # comma-separated list of host:port pairs

# activemq (activemqproperties)
spring.activemq.broker-url=tcp://localhost:61616 # connection url
spring.activemq.user=
spring.activemq.password=
spring.activemq.in-memory=true # broker kind to create if no broker-url is specified
spring.activemq.pooled=false

# hornetq (hornetqproperties)
spring.hornetq.mode= # connection mode (native, embedded)
spring.hornetq.host=localhost # hornetq host (native mode)
spring.hornetq.port=5445 # hornetq port (native mode)
spring.hornetq.embedded.enabled=true # if the embedded server is enabled (needs hornetq-jms-server.jar)
spring.hornetq.embedded.serverid= # auto-generated id of the embedded server (integer)
spring.hornetq.embedded.persistent=false # message persistence
spring.hornetq.embedded.data-directory= # location of data content (when persistence is enabled)
spring.hornetq.embedded.queues= # comma-separated queues to create on startup
spring.hornetq.embedded.topics= # comma-separated topics to create on startup
spring.hornetq.embedded.cluster-password= # customer password (randomly generated by default)

# jms (jmsproperties)
spring.datasource.jndi-name= # jndi location of a jms connectionfactory
spring.jms.pub-sub-domain= # false for queue (default), true for topic

# spring batch (batchdatabaseinitializer)
spring.batch.job.names=job1,job2
spring.batch.job.enabled=true
spring.batch.initializer.enabled=true
spring.batch.schema= # batch schema to load

# aop
spring.aop.auto=
spring.aop.proxy-target-class=

# file encoding (fileencodingapplicationlistener)
spring.mandatory-file-encoding=false

# spring social (socialwebautoconfiguration)
spring.social.auto-connection-views=true # set to true for default connection views or false if you provide your own

# spring social facebook (facebookautoconfiguration)
spring.social.facebook.app-id= # your application's facebook app id
spring.social.facebook.app-secret= # your application's facebook app secret

# spring social linkedin (linkedinautoconfiguration)
spring.social.linkedin.app-id= # your application's linkedin app id
spring.social.linkedin.app-secret= # your application's linkedin app secret

# spring social twitter (twitterautoconfiguration)
spring.social.twitter.app-id= # your application's twitter app id
spring.social.twitter.app-secret= # your application's twitter app secret

# spring mobile site preference (sitepreferenceautoconfiguration)
spring.mobile.sitepreference.enabled=true # enabled by default

# spring mobile device views (devicedelegatingviewresolverautoconfiguration)
spring.mobile.devicedelegatingviewresolver.enabled=true # disabled by default
spring.mobile.devicedelegatingviewresolver.normalprefix=
spring.mobile.devicedelegatingviewresolver.normalsuffix=
spring.mobile.devicedelegatingviewresolver.mobileprefix=mobile/
spring.mobile.devicedelegatingviewresolver.mobilesuffix=
spring.mobile.devicedelegatingviewresolver.tabletprefix=tablet/
spring.mobile.devicedelegatingviewresolver.tabletsuffix=

# ----------------------------------------
# actuator properties
# ----------------------------------------

# management http server (managementserverproperties)
management.port= # defaults to 'server.port'
management.address= # bind to a specific nic
management.contextpath= # default to '/'
management.add-application-context-header= # default to true

# endpoints (abstractendpoint subclasses)
endpoints.autoconfig.id=autoconfig
endpoints.autoconfig.sensitive=true
endpoints.autoconfig.enabled=true
endpoints.beans.id=beans
endpoints.beans.sensitive=true
endpoints.beans.enabled=true
endpoints.configprops.id=configprops
endpoints.configprops.sensitive=true
endpoints.configprops.enabled=true
endpoints.configprops.keys-to-sanitize=password,secret,key # suffix or regex
endpoints.dump.id=dump
endpoints.dump.sensitive=true
endpoints.dump.enabled=true
endpoints.env.id=env
endpoints.env.sensitive=true
endpoints.env.enabled=true
endpoints.env.keys-to-sanitize=password,secret,key # suffix or regex
endpoints.health.id=health
endpoints.health.sensitive=false
endpoints.health.enabled=true
endpoints.health.time-to-live=1000
endpoints.info.id=info
endpoints.info.sensitive=false
endpoints.info.enabled=true
endpoints.metrics.id=metrics
endpoints.metrics.sensitive=true
endpoints.metrics.enabled=true
endpoints.shutdown.id=shutdown
endpoints.shutdown.sensitive=true
endpoints.shutdown.enabled=false
endpoints.trace.id=trace
endpoints.trace.sensitive=true
endpoints.trace.enabled=true

# health indicators
health.diskspace.path=.
health.diskspace.threshold=10485760

# mvc only endpoints
endpoints.jolokia.path=jolokia
endpoints.jolokia.sensitive=true
endpoints.jolokia.enabled=true # when using jolokia

# jmx endpoint (endpointmbeanexportproperties)
endpoints.jmx.enabled=true
endpoints.jmx.domain= # the jmx domain, defaults to 'org.springboot'
endpoints.jmx.unique-names=false
endpoints.jmx.staticnames=

# jolokia (jolokiaproperties)
jolokia.config.*= # see jolokia manual

# remote shell
shell.auth=simple # jaas, key, simple, spring
shell.command-refresh-interval=-1
shell.command-path-patterns= # classpath*:/commands/**, classpath*:/crash/commands/**
shell.config-path-patterns= # classpath*:/crash/*
shell.disabled-plugins=false # don't expose plugins
shell.ssh.enabled= # ssh settings ...
shell.ssh.keypath=
shell.ssh.port=
shell.telnet.enabled= # telnet settings ...
shell.telnet.port=
shell.auth.jaas.domain= # authentication settings ...
shell.auth.key.path=
shell.auth.simple.user.name=
shell.auth.simple.user.password=
shell.auth.spring.roles=

# git info
spring.git.properties= # resource ref to generated git info properties file

7.找到com.boot下的application以java application方式启动,然后打开浏览器输入localhost:8080就会出现hello world!

这样一个简单的web开发就搭建好了。

8.启动图片:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网