SpringBoot入门一:基础知识(环境搭建、注解说明、创建对象方法、注入方式、集成jsp/Thymeleaf、logback日志、全局热部署、文件上传/下载、拦截器、自动配置原理等) | 您所在的位置:网站首页 › 橡皮泥捏月饼图片大全大图 › SpringBoot入门一:基础知识(环境搭建、注解说明、创建对象方法、注入方式、集成jsp/Thymeleaf、logback日志、全局热部署、文件上传/下载、拦截器、自动配置原理等) |
SpringBoot设计目的是用来简化Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,SpringBoot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。 SpringBoot(微框架)=SpringMVC(控制器)+Spring(项目管理) 特点: (1)创建独立的Spring应用程序 (2)嵌入的Tomcat,无需部署WAR文件 (3)简化Maven配置 (4)自动配置Spring (5)没有XML配置 一、搭建第一个SpringBoot环境 1、开发步骤(手动)创建一个maven项目 1)引入依赖 spring-boot-starter-parent:继承springboot的父项目 org.springframework.boot spring-boot-starter-parent 2.4.4spring-boot-starter-web:引入web支持 org.springframework.boot spring-boot-starter-web2)引入springboot的配置文件:resources/application.properties或者resources/application.yaml 3)开发springboot入口类:com.icucoder.learn.LearnApplication.class(必须在父包中) 4)开发Controller测试:(同springmvc) 注意:如果要使用jsp文件,则需要在java和resources同级目录新建webapp目录。 2、开发步骤(自动)使用intellijidea开发工具,新建一个Spring Initializr项目,然后开发Controller测试。 二、springboot中配置文件拆分在实际开发过程中生成环境和测试环境有可能是不一样的,因此将生产环境中的配置和测试环境中的配置拆分是必要的。将公共配置放入主配置文件中,将不同配置放入不同环境配置文件中。在主配置文件中使用:spring.profiles.active=dev激活不同环境的配置文件。 主:application.properties 开发:application-dev.properties 生产:application-prod.properties 三、springboot中工厂特性创建对象 1、java config方式自定义java对象管理1)创建单个自定义对象 @Component:通用组件对象的创建注解 @Service:标识业务层组件创建 @Controller:控制器对象创建 @Repository:用来创建DAO组件注解 以上一般用于自定义的类的对象的创建。 2)一次性创建多个组件对象(包含复杂对象):@Configuration @Configuration是配置注解(也是派生注解),修饰范围:用在类上,相当于曾经的spring.xml。springboot会把该类中每一个方法(方法上需要加上@Bean标签,用来创建这个对象在工厂中一个实例,默认是单例)当做一个对象的创建。 @Configuration public class BeansConfig { @Bean public Calendar getCalendar() { return Calendar.getInstance(); } }一般用于框架提供的类的对象的创建。 3)在使用时使用@Import导入指定对象 @RestController @RequestMapping("/learn") @Import(Company.class)//有一个实体类Company public class LearnController { @Autowired Company company; @RequestMapping("test") public String test() { System.out.println("company:" + company); return "user test1"; } } 2、xml方式配置:通过xml配置管理java对象新建一个spring的xml,如spring.xml,使用标签,然后再启动类上加上@ImportResource("spring.xml") 四、springboot中注入方式 1、属性注入使用@Value注解进行属性注入 1)在配置文件中定义变量: #application.properties中定义变量 users=mayun2)然后再Controller中使用@Value进行注入: @RestController @RequestMapping("/learn") public class LearnController { @Value("${names}") private String name; @RequestMapping("test") public String test() { return name; } }注入基本类型:String、日期类型、八种基本类型使用@Value形式注入 2、对象注入使用@ConfigurationProperties注解进行对象注入 1)在配置文件中定义对象: #application.properties中定义对象 user.id=7 user.name=mayun user.age=19 [email protected]2)编写一个基本类User,使用@ConfigurationProperties进行注入: @Component @ConfigurationProperties(prefix = "user") public class User { private Integer id; private String name; private Integer age; private String email; //略去构造方法和setter/getter方法 }3)然后再Controller中使用: @RestController @RequestMapping("/learn") public class LearnController { @Autowired private User user; @RequestMapping("test") public User test() { return user; } }在基本类上不使用@ConfigurationProperties,而在基本类中的每个成员变量上可以使用@Value进行注入,但是比较麻烦。 可以使用构建源数据来在配置文件中智能提示属性: org.springframework.boot spring-boot-configuration-processor 3、自动注入1)@Autowired 2)@Resource 五、springboot中集成jsp页面模板默认推荐视图模板为Thymelaf,类似于freemarker。 1、与jsp集成步骤1)引入依赖(springboot依赖略) javax.servlet jstl org.apache.tomcat.embed tomcat-embed-jasper2)配置jsp运行插件 org.springframework.boot spring-boot-maven-plugin3)在application.properties中配置视图解析的前缀和后缀 spring.mvc.view.prefix=/ spring.mvc.view.suffix=.jsp4)配置启动的working directory为ModuleFileDir(此为idea缺陷,新版本好像不需要设置了) 5)在与java和resources同级目录新建webapp目录,并新建一个file.jsp文件: 6)编写Controller进行测试:http://127.0.0.1:8090/learn/test @Controller @RequestMapping("/learn") public class LearnController { @RequestMapping("test") public String test() { return "file"; } } 2、jsp页面热部署热部署:在不需要重启服务器情况下将jsp页面修改立即生效的过程 在springboot中默认jsp页面部署方式使用的是生产模式部署,修改之后必须重启服务器才能生效。 使用下述配置可以改为jsp热部署: #jsp页面热部署 server.servlet.jsp.init-parameters.development=true 六、springboot中集成Thymeleaf页面模板Thymeleaf是一个用于web和独立环境的现代服务器端Java模板引擎。它是跟Velocity、FreeMarker类似的模板引擎,它可以完全替代JSP,相较与其他模板引擎,Thymeleaf在有网络和无网络的环境下皆可运行。即它可以让美工在浏览器查看页面的静态效果,也可以让程序员在服务器查看带数据的动态页面效果。 1、与Thymeleaf集成步骤1)引入依赖(springboot依赖略) org.springframework.boot spring-boot-starter-thymeleaf2)在application.yaml进行属性配置 #使用模板目录 spring.thymeleaf.prefix=classpath:/templates/ #使用模板后缀 spring.thymeleaf.suffix=.html #使用模板编码 spring.thymeleaf.encoding=UTF-8 #开始thymeleaf模板 spring.thymeleaf.enabled=true #使用模板响应类型 spring.thymeleaf.servlet.content-type=text/html3)在与java和resources子目录新建templates目录,并新建一个index.html文件: 注意:templates目录必须经过控制器才能访问,而static则不需要 (1)html中加入thymeleaf命令空间
4)编写Controller进行测试:http://127.0.0.1:8090/learn/test @Controller @RequestMapping("/main") public class MainController { @RequestMapping("/") public String index(){ return "index"; } } 2、Thymeleaf语法入门 七、springboot集成logback日志展示 1、基本概念logback是log4j创始人设计的又一个开源日志组件。轻量级、易用。 1)日志级别(级别越低输出日志信息越多):ALL com.icucoder.thymeleaf.ThymeleafApplication org.apache.maven.plugins maven-resources-plugin 2.4.3 3)排除内嵌的tomcat org.springframework.boot spring-boot-starter-tomcat provided org.apache.tomcat.embed tomcat-embed-jasper provided4)配置入口类 //继承SpringBootServletInitializer,然后覆盖configure方法 @SpringBootApplication public class ThymeleafApplication extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(ThymeleafApplication.class, args); } protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(ThymeleafApplication.class); } } 2、jar 1)修改pom.xml的packaging为jar 或者默认 2)如果使用jar包部署,并且有文件上传/下载,则需要将目录映射到jar以外的目录。 配置文件application.properties中定义目录变量,然后在代码中使用@Value注解获得变量的值。 注意: |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |