欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2024-02-26 13:48:22
最近公司运用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.创建的文件目录如图:

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

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.启动图片:

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

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