springboot的目的是为了简化spring运用的开拓搭建以及开拓过程。内部利用了分外的处理,使得开拓职员不须要进行额外繁锁的xml文件配置的编写,其内部包含很多模块的配置只须要添加maven依赖即可利用,这项功能可谓对开拓职员供应了大大的好处。利用springboot只须要大略配置一下就可以完成之前繁芜的配置过程。可以到https://start.spring.io/此网站上,下载一个最大略的springboot运用,然后一步一步实现自已的运用。
可以看出当前的稳定版本为2.1.0,点击Generate Project 按钮,即可下载一个可用的springboot运用。
这个是我下载下来后,双击后出来的。可以看出以工程是一个基于maven的项目。你可以将其解压到任何一个目录下,通过eclipse或其他IDE进行导入后运行,eclipse导入流程为File->import->maven->existing maven projects,查找到自己的项目目录。也可以基于此工程来建立自已的maven项目。
下面以建立自己的maven项目
建立自己的springboot项目
创建工程在建立项目时,可以创建一个多模块聚合项目,即在创建项目时选中
选择为pom。
创建后的工程构造为
jar包依赖打开从springboot官网中下载下来的工程目录,打开pom.xml文件
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.0.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties>
将此段代码复制到 spring-boot-study工程中的pom文件中
将下面的依赖复制到spring-boot-web工程中的pom文件中
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
eclipse自动完成项目工程的配置。完成后项目中所有须要依赖的jar包自动配置完成。
代码编写将application.properties文件拷贝到spring-boot-study项目的resources目录下。文件中的内容暂时先不要管,编写以下代码@SpringBootApplication@RestControllerpublic class WebApplication { @RequestMapping(\"大众/hello\"大众) public String helloWorld() { return \公众Hello World\公众; } public static void main(String[] args) { SpringApplication.run(WebApplication.class, args); } }
HelloWold就已经完成后。可以在浏览器中输入localhost:8080/hello即可看到效果
springboot默认启动后的端口为8080,但可以在application.properties文件中进行修正。
server.port=9001
将端口修正为9001,重新启动项目后,在浏览器中输入入localhost:9001/hello同样可以看到相同的结果。
整合login界面现在后台已经有转发功能,具备web浏览功能。但我们须要访问URL为“/”时跳转到上岸界面,即创建好的上岸界面。本人也是在学习过程中,在网长进修好久才创造利用html的话就利用thymeleaf模板就好了。下面就详细来说说如何利用thymeleaf开拓html。在spring-boot-web项目中的pom文件中加上thymeleaf的依赖。<!-- 加入thymeleaf的支持 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>
但在Spring Boot项目中,一样平常src/main/resources/static目录用于存放各种静态资源文件,例如css、js和image等。src/main/resources/templates用于存放页面文件,例如html,jsp等。以是在spring-boot-web中的resources目录下创建static目录与templates目录,并将相应的资源文件放置在各自的目录下。
配置thymeleaf
#thymeleafspring.thymeleaf.prefix=classpath:/templates/spring.thymeleaf.suffix=.htmlspring.thymeleaf.mode=HTMLspring.thymeleaf.encoding=UTF-8spring.thymeleaf.servlet.content-type=text/htmlspring.thymeleaf.cache=false
html文件修正,增加xmlns:th=\"大众http://www.thymeleaf.org\"大众 属性,资源文件的引入要修正。
<link href=\"大众../static/css/style.css\"大众 th:href=\"大众@{/css/style.css}\公众 rel=\"大众stylesheet\公众 /><link href=\"大众../static/css/login.css\"大众 th:href=\"大众@{/css/login.css}\"大众 rel=\"大众stylesheet\公众 />
然后编写 java代码
@Controllerpublic class IndexController { @RequestMapping(\公众/\公众) public String index() { return \"大众login\"大众; } }
重新启动程序,访问localhost:9001/就可成功跳转至login.html上岸界面上。
注:thymeleaf对html标签哀求很严格,每一个标签都须要成对涌现。
调试过程中碰着下面非常信息
org.thymeleaf.exceptions.TemplateInputException: Error resolving template [login], template might not exist or might not be accessible by any of the configured Template Resolvers at org.thymeleaf.engine.TemplateManager.resolveTemplate(TemplateManager.java:869) ~[thymeleaf-3.0.11.RELEASE.jar:3.0.11.RELEASE] at org.thymeleaf.engine.TemplateManager.parseAndProcess(TemplateManager.java:607) ~[thymeleaf-3.0.11.RELEASE.jar:3.0.11.RELEASE] at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1098) [thymeleaf-3.0.11.RELEASE.jar:3.0.11.RELEASE] at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1072) [thymeleaf-3.0.11.RELEASE.jar:3.0.11.RELEASE] at org.thymeleaf.spring5.view.ThymeleafView.renderFragment(ThymeleafView.java:362) [thymeleaf-spring5-。。。。。。。。。。。
由于错将templates写成templatse导致。
至此实现从后端做事访问到上岸界面的搭建,还没有详细上岸逻辑实现。