敏捷开发必备框架之SpringBoot

原创 2018年04月17日 17:54:49

一、SpringBoot简介

SpringBoot是为了简化Spring应用的创建、运行、调试、部署等而出现的,使用它可以做到专注于Spring应用的开发,而无需过多关注XML的配置,简单来说,springboo提供了一堆依赖打包,并且已经按照习惯解决了依赖问题

SpringBoot默认使用tomcat作为服务器,使用logback提供日志记录

SpringBoot提供了一系列的依赖包,所以需要构建工具的支持,maven或者gradle

二、springboot启动器

spring-boot-starter(这是springboot的可信启动器,包含了自动配置,日志和YAML)

一个简单的sprngboot示例:

1、pom.xml配置

springboot父工程依赖

<parent>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-parent</artifcatId>

<version>1.3.1.RELEASE</version>

<relativePath/>

</parent>

2、springboot web启动器

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

二、SpringBoot的注解

@SpringBootApplication:包含了@ComponentScan、@Configuration和@EnableAutoConfiguration注解

@ComponentScan:使得SpringBoot扫描到Configuration类并将其加入到程序上下文

@Configuration:等同于spring的xml配置文件,使得java代码可以检查类型安全

@EnableAutoConfiguration:自动配置

@ComponentScan:组件扫描,可以自动发现和装配一些Bean

@Component:可以配合CommandLineRunner使用,在程序启动后执行一些基础任务

@RestController注解是@Controller和@ResponseBody的合集,表示这是个控制器bean,并且是将函数的返回值直 接填入HTTP响应体中,是REST风格的控制器。

@Autowired自动导入。

@PathVariable获取参数

@JsonBackReference解决嵌套外链问题。

@RepositoryRestResourcepublic配合spring-boot-starter-data-rest使用。

@EnableAutoConfiguration:Spring Boot自动配置(auto-configuration):尝试根据你添加的jar依赖自动配置你的Spring应用。例如,如果你的classpath下存在HSQLDB,并且你没有手动配置任何数据库连接beans,那么我们将自动配置一个内存型(in-memory)数据库”。你可以将@EnableAutoConfiguration或者@SpringBootApplication注解添加到一个@Configuration类上来选择自动配置。如果发现应用了你不想要的特定自动配置类,你可以使用@EnableAutoConfiguration注解的排除属性来禁用它们。

@Configuration类上来选择自动配置。如果发现应用了你不想要的特定自动配置类,你可以使用@EnableAutoConfiguration注解的排除属性来禁用它们。

这个注释告诉SpringBoot“猜”你将如何想配置Spring,基于你已经添加jar依赖项。如果spring-boot-starter-web已经添加Tomcat和Spring MVC,这个注释自动将假设您正在开发一个web应用程序并添加相应的spring设置。

自动配置被设计用来和“Starters”一起更好的工作,但这两个概念并不直接相关。您可以自由挑选starter依赖项以外的jar包,springboot仍将尽力自动配置您的应用程序。

@Bean:相当于XML中的bean,放在方法的上面,而不是类,意思是产生一个bean,并交给spring管理。

三、SpringBoot的启动

import    org.springframework.boot.SpringApplication;

import   org.springframework.boot.autoconfigure.SpringBootApplication

@SpringBootAppliaction

public class SpringBootSampleApplication{

public static void mian(String[] args){

SpringApplication.run(SpringBootSampleApplication.class,args);

}

}

四、springboot支持jsp

springboot默认支持freeMarker页面,jsp技术过于陈旧(效率低下),如果springboot输出jsp页面,则需要:

1、配置application.properties

#页面默认前缀目录(不可改动)

spring.mvc.view.prefix=/WEB-INF/jsp

#响应页面默认后缀

spring.mvc.view.suffix=.jsp

2、加入依赖

<dependency> 
<groupId>org.apache.tomcat.embed</groupId> 
<artifactId>tomcat-embed-jasper</artifactId> 
<scope>provided</scope> 

</dependency> 

<dependency>
 <groupId>javax.servlet</groupId> 
<artifactId>jstl</artifactId> 

</dependency>

五、springboot支持freemarker

1、配置application.properties

spring.freemarker.allow-request-override=false
spring.freemarker.cache=true
spring.freemarker.check-template-location=true
spring.freemarker.charset=UTF-8
spring.freemarker.content-type=text/html
spring.freemarker.expose-request-attributes=false
spring.freemarker.expose-session-attributes=false

spring.freemarker.expose-spring-macro-helpers=false

2、引入依赖

<!-- 引入freeMarker的依赖包. -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>

</dependency>

六、Springboot/servlet注册

springboot有两种方式添加Servlet/Filter/Listener

1、代码注册通过ServletRegistrationBean、FilterRegistrationBean()和ServletListenerRegistrationBean获得

@Bean

public ServletRegistrationBean servletRegistrationBean(){

return new ServletRegistrationBeab(new MyServlet(),"/xs/*");

}

2、在SpringBootApplication上使用@ServletComponentScan注解后,Servlet、Filter、Listener可以直接通过@WebServlet、@WebFilter、@WebListener注解自动注册,无需其他代码

eg:

@SpringBootApplication

@ServletComponentScan

public class SpringBootApplication{

        public static void main(String[]c args){

        SpringBootApplication.run(SpringBootSampleApplication.calss,args);

        }

}

七、SpringBoot拦截器

1、创建我们自己拦截器类,并且实现HandlerInterceptor接口

2、创建一个Java类继承WebMvcConfigurerAdapter,并且重写addInterceptors方法

3、实例化我们自定义的拦截器,然后将对象手动添加到拦截器链中(在addInterceptors方法中添加)

八、SpringBoot静态资源处理

1、springboot的默认资源映射

其中默认配置的 /**映射到/static(或者/public 、/resource、/META-INF/resource)

其中默认配置的/webjars/** 映射到classpath:/META-INF/resources/webjars/

上面的static、public、resources等目录都在classpath:下面(如:“src/main/resources/static”)

2、自定义资源映射

继承WebMvcConfigurerAdapter并且重写方法addResourceHandlers

registry.addResourceHandler("/image/**").addResourceLocations("filter:H:/image")

registry.addResourceHandler("/image1/**").addResourceLocations("classpath:/img1")

3、通过配置文件映射

使用spring.mvc.static-path-pattern,如修改为/image/**、

使用spring.resources.static-location可以重新定义pattern所指向的路径,支持classpath和file

注意:spring.mvc.static-path-pattern只可以定义一个,目前不支持多个都好分割的方式


#默认值为  /**

spring.mvc.static-path-pattern=/image/**

#默认值为 classpath:/META-INF/resources/  , classpath:/resources/ , classpath:/static/ , classpath:/public/

spring.resources.stat-locations=classpath:/image/


springboot 启动加载数据,在项目启动的时候加载一些数据或者做一些事情的需求,springBoot提供的方法是通过实现接口CommandLineRunner来实现

九、SpringBoot   JDBC

1、属性配置文件(application.properties)

spring.datasource.url=mysql://localhost:3306/consult

spring.datasource.username=myConsult

spring.datasource.password=123456

spring.datasource.driver-class-name=org.git.m.m.mysql.Driver

2、pom.xml配置maven依赖

<!--MySql依赖-->

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

</dependency>


<!--springboot JDBC-->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifcatId>spring-boot-starter-jdbc</artifcatId>

</dependency>

十、SpringBoot整合MyBatis

1、pom.xml配置maven依赖

<dependency>

<groupId>org.mybatis.spring.boot</groupId>

<artifcatId>mybatis-spring-boot-starter</artifcatId>

<version>1.0.0</vsersion>

</dependency>

2、一定要在启动的地方加上@MapperScan(“com.zhongmei.tang.dao”)

3、配置文件中加上配置

mybatis.typeAliasesPackage=com.zhongmei.tang.bean

mybatis.mapperLOcation-classpath:com/zhongmei/tang/xml/*Mapper

SpringBoot

让你快速掌握SpringBoot框架核心知识点!
  • 2018年04月12日 22:12

springboot与敏捷开发

1springboot的起源 2springboot优缺点 3利用springboot快速搭建web项目 4浅析springboot文件结构及配置文件 5关于敏捷的一些看法 目前流行...
  • itzhuimeng
  • itzhuimeng
  • 2016-12-20 20:43:55
  • 1114

高效团队协作——敏捷开发环境架构(一)

作者简介: 一个曾经不爱分享的挨踢从业者,对软件产业充满好奇,并投身于此8载有余,为什么突然写起博客主要原因是自己的脑子不够用,总是容易把事情给忘了,一个好朋友建议我把这些年的工作经验做个总结,一来不...
  • c6725823
  • c6725823
  • 2015-03-20 01:40:42
  • 846

了解学习springboot框架

  • 2018年01月20日 18:15
  • 70.88MB
  • 下载

大型敏捷框架SAFe的Portfolio层

敏捷开发Scrum加上XP已经在小团队领域是所向无敌,一统江湖。 SAFe是在探讨大规模的敏捷开发如何进行。Scrum of Scrum解决了如何让多个Scrum  team协调一致,听指挥的开发...
  • IBelieve1974
  • IBelieve1974
  • 2017-03-16 15:17:13
  • 906

如何提升个人敏捷项目管理能力

敏捷宣言中第一个核心价值就指出:“个体和互动高于流程和工具”,它强调了个体成员在执行敏捷方法中的重要性,认为人是实施工作的主体,应该以人为核心而不是过程。所以,个体成员的能力是敏捷方法成功与否的关键的...
  • bamboolsu
  • bamboolsu
  • 2015-02-08 18:34:42
  • 813

什么是敏捷开发之Scrum框架,如何入门?

摘自PM圈子网——项目管理牛人聚集地Scrum是一个敏捷开发框架,是一个增量的、迭代的开发过程。在这个框架中,整个开发周期包括若干个小的跌代周期,每个小的的跌代周期称为一个Sprint,每个Sprin...
  • S_king_
  • S_king_
  • 2018-01-19 17:23:38
  • 146

规模化敏捷开发的10个最佳实践(上)

【编者按】软件开发和采购人员经常会对现有软件开发方法、技巧和工具产生一些疑问。针对这些疑问,Kevin Fall 整理了五个软件方面的话题:Agile at Scale,Safety-Critical...
  • wangpeng198688
  • wangpeng198688
  • 2015-08-19 18:41:14
  • 814

ASP.Net: EshineASPNet-基于ASP.Net敏捷开发开源框架

笔者从事asp.net开发多年,这里把一套基于asp.net的比较完善的网站开源分享给大家,主要是帮助新人学习。本框架包含了诸多功能,在实际项目中使用了超过4年时间,相关的工具和核心代码可靠性相对比较...
  • lyx_zhl
  • lyx_zhl
  • 2017-01-10 15:01:00
  • 3872

敏捷开发之Scrum框架入门

1 Scrum框架的概念 Scrum是一个敏捷开发框架,是一个增量的、迭代的开发过程.。在这个框架中,整个开发周期包括若干个小的跌代周期,每个小的的跌代周期称为一个Sprint,每个Sprint的建议...
  • liuchunming033
  • liuchunming033
  • 2014-03-28 16:51:42
  • 2732
收藏助手
不良信息举报
您举报文章:敏捷开发必备框架之SpringBoot
举报原因:
原因补充:

(最多只允许输入30个字)