内容文本文件_第1页
内容文本文件_第2页
内容文本文件_第3页
内容文本文件_第4页
内容文本文件_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1.SpringBootDemo1.1.Web1.SpringBootDemo1.1.Webapplication–HellopublicclassHelloControllerpublicString{);return"Hello,}}publicclassDemoApplicationpublicstaticvoidmain(String[]{SpringApplication.run(DemoApplication.class,}<artifactId>spring-boot-starter-<relativePath/><!--lookupparentfromrepository--<artifactId>spring-boot-starter-1.1.1.CreateapplicationwithSpringInitializr:1.1.2.1.1.1.CreateapplicationwithSpringInitializr:1.1.2.Build&InRunusingSpringBootmvnspring-Runas–SpringBootRunas–JavaNew–Project–SpringNew–SpringStarterPackandAccess:1.2.JPA1.2.1.DefaultPackandAccess:1.2.JPA1.2.1.DefaultH2datasourcURL:Entity:publicclass{#h2console:http://localhost:8080/h2-#specifieddatabase#Hibernateddlauto(create,create-drop,#Showornotlogforeachsqlquery<artifactId>spring-boot-starter-data-mvnjava–jarspringrunpublicclassUserControllerpublicList<User>listUsers(@RequestParam(defaultValue="")String{return}publicUsercreateUser(@RequestParamStringname){Useruser=newreturnpublicinterfaceUserRepositoryextendsJpaRepository<User,{publicList<User>findByNameLike(String}privateLongid;privateStringname;privateLocalDatepublicLong{return}publicUsersetId(Long{this.id=id;returnthis;}publicUser(Stringname){=name;this.created=}}CreatedummyinOrCreatedummyinOrsettosingle1.2.2.Java8Data<artifactId>hibernate-InitializingBeansaveData(UserRepository{return()->userRepo.save(newUser().setName("Rick"));OrJava8Style:return()->Stream.of("Yinguowei","Will","Pan","Chuang").forEach(name->userRepository.save(newUser(name).setCreated(LocalDate.now())));name->customerRepository.save(new}}}1.2.3.1.2.4.MyBatis(3rd#mysqldatasourcejdbcconnectioninfo<artifactId>mysql-connector-@Converter(autoApply=publicclassLocalDateConverterimplementsAttributeConverter<LocalDate,{publicDateconvertToDatabaseColumn(LocalDate{if(attribute==null)returnnull;returnDate.valueOf(attribute);}publicLocalDateconvertToEntityAttribute(Date{if(dbData==null)returnnull;returndbData.toLocalDate();}}(LocalDatenotNeed1.2.5.(LocalDatenotNeed1.2.5.JDBCNewpublicclassUserRepositoryJDBC<artifactId>spring-boot-starter-UserMapperpublicUsergetUser(@PathVariable("id")Longid)return}publicinterfaceUserMapper@Select("SELECT*fromUserwhereid=#{id}")UserfindById(@Param("id")Longid);}<artifactId>mybatis-spring-boot-1.2.6.ModgoDB1.2.6.ModgoDBThen,publicclass{privateStringprivateStringfirstName;privateStringlastName;publicCustomer()}<artifactId>spring-boot-starter-data-JdbcTemplate@Transactional(readOnly=true)publicList<User>findAll(){returnjdbcTemplate.query("select*fromuser",new{publicUsermapRow(ResultSetresultSet,inti)throws{Useruser=new.setCreated(resultSet.getDate("created")==null?null:resultSet.getDate("created").toLocalDate());return}}}publicclassSampleMongoApplicationimplementspublicclassSampleMongoApplicationimplementsCommandLineRunnerprivateCustomerRepositorypublicvoidrun(String...args)throws{//saveacoupleofcustomersthis.repository.save(newCustomer("Alice","Smith"));this.repository.save(newCustomer("Bob","Smith"));System.out.println("CustomersfoundwithfindAll():"); for(Customercustomer:{}//fetchanindividualSystem.out.println("CustomerfoundwithfindByFirstName('Alice'):"); System.out.println("CustomersfoundwithfindByLastName('Smith'):"); for(Customercustomer:{}}}publicinterfaceCustomerRepositoryextendsMongoRepository<Customer,{publicCustomerfindByFirstName(StringfirstName);publicList<Customer>findByLastName(StringlastName);}CanuseLike,noneed1.2.7.SpringDataCanuseLike,noneed1.2.7.SpringData1.2.8.CreateDummyDataFromDROPTABLE"USER"IFEXISTSCREATETABLE"USER"idINTEGERIDENTITYPRIMARY#databaseinit,supportsmysqlspring.jpa.hibernate.ddl-publicinterfaceReservationRepositoryextendsJpaRepository<Reservation,{}<artifactId>spring-boot-starter-data-Commentallotherinindata1.3.ViewByCommentallotherinindata1.3.ViewBydefault,SpringBootsuggestusingViewTemplatesuchasThymeleaf,Velocity(endat1.3.1.publicModelAndViewlistUsers(@RequestParam(defaultValue="")String{List<User>users=userRepo.findByNameLike("%"+name+"%");returnnewModelAndView("users/list","users",users);}<artifactId>spring-boot-starter- {return()->repo.save(newUser("yinguowei").setCreated(LocalDate.now()));Arrays.stream("Rick,James,Jon".split(",")).forEach(name->repo.save(newINSERTINTO"USER"VALUES(1,'yinguowei','1981-01-01');INSERTINTO"USER"VALUES(2,'Rick','1977-01-01');INSERTINTO"USER"VALUES(3,'James','1966-12-31');namecreated--CONSTRAINTCONSTRAINT_2PRIMARYKEYOrreturnString“users/list”andsetOrreturnString“users/list”andsetModel<!DOCTYPE<html <title>Users:View<h1layout:fragment="header">Users:View<div<ahref="form.html"th:href="@{/(form)}">CreateNew<table<trth:each="user:<!DOCTYPE<html <div<h1<divlayout:fragment="content">FakeDateFromViewHowtotransferdateDateFromViewHowtotransferdateinviewfromStringto<%@pagepageEncoding="UTF-8"<%@taglibprefix="spring"uri="/tags"<%@taglibprefix="form"uri="/tags/form"<%@taglibprefix="fmt"uri="/jsp/jstl/fmt"<%@taglibprefix="c"uri="/jsp/jstl/core"<!--JSPsupport--<artifactId>tomcat-embed-<tdth:text="${user.id}"><td<tdth:text="${user.created}">2000-1-<td><ahref="view.html"th:href="@{'/'+1.3.3.PackasAndneed1.3.3.PackasAndneedremovetomcatwhen<artifactId>spring-boot-starter-<ahref='<spring:urlvalue="/users/new"htmlEscape="true"/>'>CreateNew<table<c:forEachitems="${users}"<td>${user.id<td>${<td><spring:urlvalue="/users/${user.id}"var="viewLink"/><a1.3.4.Servlet1.3.4.ServletOrJSPJSP<artifactId>spring-boot-starter-<artifactId>spring-boot-starter-<artifactId>spring-boot-starter-<artifactId>spring-boot-starter-1.3.5.1.3.6.Webjar,1.4.Or1.3.5.1.3.6.Webjar,1.4.Orcreateanother@Component(withh2consolesupport,security/Ifneedpostmantosentactions,mustdisablepublicclassCustomWebSecurityConfigextends{protectedvoidconfigure(HttpSecurityhttp)throws{http.authorizeRequests().antMatchers("/h2- //forenableh2console}publicclassBootDemoApplicationextendsWebSecurityConfigurerAdapter{@Overrideprotectedvoidconfigure(HttpSecurityhttp)throws{}<artifactId>spring-boot-starter-1.5.SpringBootincludesanumberofadditional1.5.SpringBootincludesanumberofadditionalfeaturestohelpyoumonitorandmanageapplicationwhenit’spushedto1.5.1.Actuator1.5.2. Providesahypermedia-based“discoverypage”fortheother <artifactId>spring-boot-actuator-<artifactId>spring-boot-starter-RequiresSpringHATEOAStobeontheDisplaysanauto-configurationreportshowingallauto-configurationcandidatesandthereasonwhythey‘were’or‘werenot’applied.DisplaysacompletelistofalltheSpringbeansinyourDisplaysacollatedlistofallRequiresSpringHATEOAStobeontheDisplaysanauto-configurationreportshowingallauto-configurationcandidatesandthereasonwhythey‘were’or‘werenot’applied.DisplaysacompletelistofalltheSpringbeansinyourDisplaysacollatedlistofallPerformsathreadShowsanyFlywaydatabasemigrationsthathavebeenShowsapplicationhealthinformation(whentheapplicationissecure,asimple‘status’whenaccessedoveranunauthenticatedconnectionorfullmessagedetailswhenauthenticated).ShowsanyLiquibasedatabasemigrationsthathavebeenShows‘metrics’informationforthecurrentDisplaysacollatedlistofall@RequestMappingDisplaystraceinformation(bydefaultthelast100HTTPfyouareusingSpringMVC,thefollowingadditionalendpointscanalsobeDisplaysdocumentation,includingexamplerequestsandresponses,fortheActuator’sendpoints.Requiresspring-boot-actuator-docstobeontheReturnsaGZipcompressedhprofheapdumpExposesJMXbeansoverHTTP(whenJolokiaisonthe (iflogging.fileorlogging.pathpropertieshavebeenset).SupportstheuseoftheHTTPRangeheadertoretrievepartofthelogfile’scontent.1.5.3.1.5.4.JConsoleFoundMbeansin1.5.5.Remote1.5.3.1.5.4.JConsoleFoundMbeansin1.5.5.RemoteCommandLine:(EnableANSI1.6.SpringBootAdmin(3rd1.6.1.Server<artifactId>spring-boot-admin-<artifactId>spring-boot-admin-server-ssh–p2000<artifactId>spring-boot-starter-remote-Access:1.6.2.ClientAccess:1.6.2.Client<!--springbootadmin(3rdparty)client--<artifactId>spring-boot-admin-starter-publicclassAdminServerApplicationpublicstaticvoidmain(String[]{SpringApplication.run(AdminServerApplication.class,}}=SpringBootAdmin#foractuatorinfo=SpringBootAdminApp1.7.DevOrinthe1.8.1.7.DevOrinthe1.8.SpringTools–AddBoot<artifactId>spring-boot-maven-<artifactId>spring-boot-#springbootadminserveraddress#myapplicationname#foractuatorinfo=WilmarBootDemopublicDataSourcedataSource(Environment{DruidDataSourcedataSource=newDruidDataSource();publicDataSourcedataSource(Environment{DruidDataSourcedataSource=newDruidDataSource();publicclassDruidTestApplication@WebServlet(urlPatterns="/druid/*",initParams={ @WebInitParam(name="allow",value @WebInitParam(namedeny"value"11"IP@WebInitParam(name"loginUsername"value"druid"),户名@WebInitParam(name="loginPassword",value="druid"),//密码@WebInitParam(name"resetEnable"value"false")HTMLpublicclassDruidStatViewServletextendsStatViewServlet}@WebFilter(filterName="druidWebStatFilter",urlPatterns="/*",initParams={@WebInitParam(name="exclusions",value="*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*")//忽略资源publicclassDruidStatFilterextendsWebStatFilter}<artifactId>tomcat-…publicclasspublicclass{publicServletRegistrationBean{ServletRegistrationBeanservlet=newStatViewServlet(),"/druid/*");returnservlet;}publicFilterRegistrationBean{FilterRegistrationBeanfilterRegistrationBean=newfilterRegistrationBean.setFilter(newreturnfilterRegistrationBean;}publicDataSourcedruidDataSource(//@Value("${spring.datasource.driverClassName}")Stringdriver,@Value("${spring.datasource.url}")名dataSource.setValidationQuery("SELECT1");returndataSource;}1.9.Supportedcache••••1.9.Supportedcache••••••JCache(JSR-107)(EhCache3,Hazelcast,Infinispan,etc)EhCache2.xpublicclassCacheConfig}<!--cache--<artifactId>spring-boot-starter-StringStringpassword)DruidDataSourcedruidDataSource=new }catch(SQLException{return}}••••public••••publicclassUserControllerUserService UserRepository UserMapper@CacheConfig(cacheNames="users")publicclassUserService{UserRepository@CachePut(key="'user_'+#user.id")publicUsercreateOrUpdateUser(Useruser){return}@Cacheable(key="'user_'+#userId")publicUserfindUser(LonguserId)returnuserRepository.findOne(userId);}@CacheEvict(key="'user_'+#userId")publicvoiddeleteUser(LonguserId){}}<cache<cacheUserRepositoryJdbcpublicList<User>{;return}publicUsercreateNewUser(@RequestParam("name")String{ returnuserService.createOrUpdateUser(new}publicUserupdateUser(@PathVariable("id")Longid,@PathVariable("name")StringnewName){}publicUserfindUser(@PathVariable("id")Long{ returnreturn}publicStringdeleteUser(@PathVariable("id")Longreturn}}<?xmlversion="1.0"encoding="UTF-<?xmlversion="1.0"encoding="UTF-<ehcachexmlns:xsi="/2001/XMLSchema-instance"<diskStorepath="java.io.tmpdir/Tmp_EhCache"<ehcache<diskStore memoryStoreEvictionPolicy="LRU"<!--See/documentation/#mozTocId258426fortoconfigurecachingforyourobjects-- 1.10.InMaven1.11.JMX1.10.InMaven1.11.JMXAccess:UsejconsoletomonitorJMX&<artifactId>jolokia-1.12.Message1.12.MessagepublicclassProducer{privateJmsMessagingTemplateprivateQueue@Scheduled(fixedDelay=3000)publicvoidsend(){this.jmsMessagingTemplate.convertAndSend(this.queue,"SampleSystem.out.println("MessagewassenttothepublicclassDemoApplication…publicQueuequeue()returnnew}}spring.activemq.broker-<artifactId>spring-boot-starter-AMQP:1.13.APIpublicAMQP:1.13.APIpublicclassDemoApplication…}<!--Swagger--<artifactId>springfox-swagger-<artifactId>springfox-publicclass{@JmsListener(destination="sample.queue")publicvoidreceiveQueue(Stringtext){}}}SpringJUnitSpringJUnitpublicvoidsend()System.out.println("MessagewassenttotheQueue");}publicclassSchedulingConfig@Scheduled(cron="0/20****publicvoid{}}@ApiOperation(value="ListUser",notes="ListuserswithspecifiednamefrompublicModelAndView@ApiParam(name="name",value="user'sname",required=false)@RequestParam(defaultValue="")Stringname){…}2.1.OfficialTable13.1.SpringBootapplicationStarter2.1.OfficialTable13.1.SpringBootapplicationStarterforusingSpringWebServices.Deprecatedasof1.4inStarterforusingCouchbasedocument-orienteddatabaseandDataStarterforJMSmessagingusingApacheStarterforusingSpringWebStarterforusingJavaMailandSpringFramework’semailStarterforusingRediskey-valuedatastorewithSpringDataRedistheJedisStarterforbuildingweb,includingRESTful,applicationsusingMVC.UsesTomcatasthedefaultembeddedStarterforusingGemFiredistributeddatastoreandSpringStarterforJMSmessagingusingApacheStarterforusingElasticsearchsearchandanalyticsengineandDataStarterforusingSpringHamcrestandStarterforJMSmessagingusingHornetQ.Deprecatedasof1.4infavorofspring-boot-starter-artemisStarterforusingJDBCwiththeTomcatJDBCconnectionStarterforbuildingwebapplicationsusingHamcrestandStarterforJMSmessagingusingHornetQ.Deprecatedasof1.4infavorofspring-boot-starter-artemisStarterforusingJDBCwiththeTomcatJDBCconnectionStarterforbuildingwebapplicationsusingSpringStarterforbuildinghypermedia-basedRESTfulwebapplicationwithSpringMVCandSpringHATEOASalternativetospring-boot-starter-webStarterforusingNeo4jgraphdatabaseandSpringDataStarterforbuildingWebSocketapplicationsusingSpringFramework’sWebSocketsupportStarterforusingSpringAMQPandRabbitStarterforusingCassandradistributeddatabaseandSpringDataStarterforusingSpringSocialStarterforusingSpringStarterforusingSpringDataJPAwithStarterforbuildingMVCwebapplicationsusingVelocityStarterforusingStarterforbuildingMVCwebapplicationsusingVelocityStarterforusingSpringStarterforusingRediskey-valuedatastorewithSpringDataRedistheJedisclient.Deprecatedasof1.4infavorofspring-boot-StaterforusingSpringSocialStarterforusingtheApacheSolrsearchplatformwithSpringDataStarterforusingMongoDBdocument-orienteddatabaseandDataservicesincloudplatformslikeCloudFoundryandStarterforusingSpringSocialInadditiontotheapplicationstarters,thefollowingstarterscanbeusedtoaddproductionreadyTable13.2.SpringBootproduction2.2.3rdPartyStarterforusingSpringBoot’sActuatorwhich2.2.3rdPartyStarterforusingSpringBoot’sActuatorwhichprovidesproductionreadyfeaturestohelpyoumonitorandmanageyourapplicationStarterforusingtheCRaSHremoteshelltomonitorandmanageyourapplicationoverSSHFinally,SpringBootalsoincludessomestartersthatcanbeusedifyouwanttoexcludeorswapspecifictechnicalTable13.3.SpringBoottechnical StarterforusingUndertowastheembeddedservletcontainer.An alternativetospring-boot-starter-tomcat StarterforusingJettyastheembeddedservletcontainer.Analternativetospring-boot-starter-tomcat StarterforloggingusingLogback.Defaultloggingstarter containerstarterusedbyspring-boot-starter-web StarterforusingLog4j2forlogging.Analternativetospring-boot-starter- 3.1.官1.4.1.RELEASE(2016-10-26)3.1.官1.4.1.RELEASE(2016-10-26)1.3.6releaseEclipse官网:/Maven /technetwork/java/javase/downloads/index-jsp-138363.html(需要1.8)SpringToolSuite3.1.1.GITHubSample项spring-boot-sample-JMSconsumerandproducerusingApachespring-boot-sample-RESTservicewithproduction-readyspring-boot-sample-actuator-spring-boot-sample-actuator-Non-webapplicationwithproduction-readyspring-boot-sample-actuator-WebUIexamplewithproduction-readyspring-boot-sample-Message-orientedapplicationusingAMQPandspring-boot-sample-ExecutableJARbuildusingspring-boot-sample-DemonstratesexplicitusageofSpringspring-boot-sample-Chatservicebuiltusingspring-boot-sample-actuator-Non-webapplicationwithproduction-readyspring-boot-sample-actuator-WebUIexamplewithproduction-readyspring-boot-sample-Message-orientedapplicationusingAMQPandspring-boot-sample-ExecutableJARbuildusingspring-boot-sample-DemonstratesexplicitusageofSpringspring-boot-sample-Chatservicebuiltusingspring-boot-sample-DefineandrunaBatchjobinafewlinesofspring-boot-sample-WebapplicationthatusesSpring’scachespring-boot-sample-data-StoresdatausingSpringDataspring-boot-sample-data-StoresdatausingSpringDataspring-boot-sample-data-StoresdatausingSpringDataspring-boot-sample-data-StoresdatausingSpringDataspring-boot-sample-data-StoresdatausingSpringDataJPAwithspring-boot-sample-data-StoresdatausingSpringDataspring-boot-sample-data-StoresdatausingSpringDataspring-boot-sample-data-StoresdatausingSpringDataspring-boot-sample-data-RESTfulservicebuiltusingSpringDataspring-boot-sample-data-StoresdatausingSpringDataspring-boot-sample-UsingDevToolsforrapidapplicationspring-boot-sample-Databasemigrationswithspring-boot-sample-RESTfulAPIbuiltusingSpringspring-boot-sample-DemonstrateshowtouseHibernatespring-boot-sample-DemonstrateshowtouseHibernatespring-boot-sample-Message-orientedapplicationusingspring-boot-sample-spring-boot-sample-hypermedia-ofJacksonspring-boot-sample-hypermedia-spring-boot-sample-DemonstrateshowtouseHibernatespring-boot-sample-Message-orientedapplicationusingspring-boot-sample-spring-boot-sample-hypermedia-ofJacksonspring-boot-sample-hypermedia-DataJPAandSpringDataRESTspring-boot-sample-hypermedia-spring-boot-sample-spring-boot-sample-RESTfulservicebuiltusingJerseyspring-boot-sample-RESTfulservicebuiltusingspring-boot-sample-Embeddedspring-boot-sample-jetty-EmbeddedJettyconfiguredtousespring-boot-sample-jetty-WebapplicationthatusesJSPtemplateswithspring-boot-sample-EmbeddedJettyspring-boot-sample-jetty8-EmbeddedJetty8spring-boot-sample-EmbeddedJettyspring-boot-sample-Storesdatausingspring-boot-sample-UsesplainJPAspring-boot-sample-jta-JTAtransactionswithspring-boot-sample-jta-JTAtransactionswithspring-boot-sample-jta-spring-boot-sample-jta-JTAtransactionswithspring-boot-sample-Databasemigrationswithspring-boot-sample-configuredinlogback-spring.xmlspring-boot-sample-metrics-DemonstratessupportforDropwizardspring-boot-sample-metrics-Exportsmetricstospring-boot-sample-metrics-Exportsspring-boot-sample-jta-spring-boot-sample-jta-JTAtransactionswithspring-boot-sample-Databasemigrationswithspring-boot-sample-configuredinlogback-spring.xmlspring-boot-sample-metrics-DemonstratessupportforDropwizardspring-boot-sample-metrics-Exportsmetricstospring-boot-sample-metrics-Exportsmetricstospring-boot-sample-parent-spring-boot-sample-DemonstratessomeofSpringFramework’s@Profilespring-boot-sample-property-SpringValidatorspring-boot-sample-spring-boot-sample-secure-spring-boot-sample-secure-oauth2-OAuth2resourcespring-b

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论