Spring Boot

一、Spring Boot 概述

  • Spring Boot发展背景
  • Spring Boot特点
        1、为开发者提供Spring快速入门体验。
        2、内嵌Tomcat和Jetty容器,不需要部署WAR文件到Web容器就可独立运行应用。
        3、提供许多基于Maven的pom配置模板来简化工程配置。
        4、提供实现自动化配置的基础设施。
        5、提供可以直接在生产环境中使用的功能,如性能指标、应用信息和应用健康检查。
        6、开箱即用,没有代码生成,也无须XML配置文件,支持修改默认值来满足特定需求。
  • 三、Spring Boot启动器
        spring-boot-starter                        核心模块,包含自动配置支持、日志库和对YAML配置文件的支持
        spring-boot-starter-amqp                支持AMQP,包含spring-rabbit
        spring-boot-starter-aop                    支持面向切面编程(AOP),包含spring-aop和AspectJ
        spring-boot-starter-artemis                通过Apache Artemis支持JMS的API(Java Message Service API)
        spring-boot-starter-batch                支持Spring Batch,包含HSQLDB
        spring-boot-starter-cache                支持Spring的Cache抽象
        spring-boot-starter-cloud-connectors    支持Spring Cloud Connectors,
                                                                             简化了在像Cloud Foundry或Heroku这样的云平台上连接服务
        spring-boot-starter-data-gemfire        支持GemFire分布式数据存储,包含spirng-data-gemfire
        spring-boot-starter-data-jpa            支持JPA,包含spirng-data-jpa、spring-orm和Hibernate
        spring-boot-starter-data-elasticsearch    支持ElasticSearch搜索和分析引擎,包含spring-data-elasticsearch
        spring-boot-starter-data-solr            支持Apache Solr搜索平台,包含spring-data-solr
        spring-boot-starter-data-mongodb        支持MongoDB,包含spring-data-mongodb
        spring-boot-starter-data-rest            支持以REST方式暴露Spring Data仓库,包含spring-data-rest-webmvc
        spring-boot-starter-redis                支持Redis键值存储数据库,包含spring-redis
        spring-boot-starter-jdbc                支持使用JDBC访问数据库
        spring-boot-starter-jta-atomikos        通过Atomikos支持JTA分布式事务处理
        spring-boot-starter-jta-bitronix        通过Bitronix支持JTA分布式事务处理
        spring-boot-starter-security            包含spring-security
        spring-boot-starter-test                包含常用的测试所需的依赖,
                                                                             如TestNG、Hamcrest、Mockito和spring-test等
        spring-boot-starter-velocity            支持使用Velocity作为模板引擎
        spring-boot-starter-freemarker            支持FreeMarker模板引擎
        spring-boot-starter-thymeleaf            支持Thymeleaf模板引擎,包括Spring的集成
        spring-boot-starter-mustache            支持Mustache模板引擎
        spring-boot-starter-web                    支持Web应用开发,
                                                                             包含tomcat、spring-mvc、spring-webmvc和jackson
        spring-boot-starter-websocket            支持使用Tomcat开发WebSocket应用
        spring-boot-starter-ws                    支持Spring Web Services
        spring-boot-starter-groovy-templates    支持Groovy模板引擎
        spring-boot-starter-hateoas                通过spring-hateoas支持基于Hateoas的RESTful Web服务
        spring-boot-starter-hornetq                通过HornetQ支持JMS
        spring-boot-starter-log4j                添加Log4j的支持
        spring-boot-starter-logging                使用Spring Boot默认的日志框架Logback
        spring-boot-starter-integration            支持通用的spring-integration模块
        spring-boot-starter-jersey                支持Jersey RESTful Web服务框架
        spring-boot-starter-mail                支持javax.mail模块
        spring-boot-starter-mobile                支持spring-mobile
        spring-boot-starter-social-facebook        支持spring-social-facebook
        spring-boot-starter-social-linkedin        支持spring-social-linkedin
        spring-boot-starter-social-twitter        支持spring-social-twitter
        spring-boot-starter-actuator            添加适用于生产环境的功能,如性能指标和监测等功能
        spring-boot-starter-remote-shell        支持远程SSH命令操作
        spring-boot-starter-tomcat                使用Spring Boot默认的Tomcat作为应用服务器
        spring-boot-starter-jetty                引入了Jetty HTTP引擎(用于替换Tomcat)
        spring-boot-starter-undertow            引入了Undertow HTTP引擎(用于替换Tomcat)

二、快速入门

  • 快速入门
        1、pom.xml
            引用了spring-boot-starter-web启动器依赖
        2、代码
            @EnableAutoConfiguration注解是由Boot提供的,
                用于对Spring框架进行自动配置
            @RestController和@RequestMapping注解是由SpringMVC提供的,
                用于创建Rest服务。

三、安装配置

  • 基于Maven环境配置
        1、继承Spring Boot根默认配置依赖
        2、根据应用需要添加不同类型的启动器依赖
        3、配置运行插件
  • 基于Gradle环境配置
  • 基于Spring Boot CLI环境配置
  • 代码包结构规划
        建议将应用的主类放在主包外层。
        这个主类声明了main()方法,并在类级别上标注
            @Configuration、@ConponentScan、@EanbleAutoConfiguration注解。
            在Spring Boot 1.2+中可以使用
            @SpringBootApplication注解代替上面3个注解。

四、持久层

  • 初始化配置
        1、在模块pom.xml文件中导入
            spring-boot-starter-data-jdbc依赖及访问数据库的JDBC驱动器。
        2、在资源根目录resources下创建一个application.properties,配置数据库连接信息:
            1)两种配置数据库连接的方式:
                通过自定义连接的方式,通过配置spring.datasource.*选项
                    设定数据源的链接地址、连接驱动器、用户名和密码。
                    在默认情况下,Boot启动器自动创建tomcat-jdbc连接池。
                    如果不想采用默认的连接池,则可以通过spring.datasource.type属性
                    手工指定项目所需的连接池(如DBCP、C3P0)。
                通过JNDI方式设置,在生产环境中通常会采用此种方式。
                    为spring.datasource.jndi-name属性指定一个JNDI连接名称即可。
                配置连接池信息
            2)初始化数据库脚本
                spring.datasource.initialize属性设置启动的时候是否进行初始化;
                spring.datasource.platform属性设置当前数据库类型(如MySQL);
                spring.datasource.data属性设置DML脚本文件名称,在启动的时候会从类根路径
                    加载data-${platform}.sql文件执行,其中${platform}为当前数据库类型;
                spring.datasource.schema属性设置DDL脚本文件名称,在启动的时候会从
                    类跟路径加载schema-mysql.sql文件执行。
  • DAO
        1、@Repository 定义 DAO Bean。
        2、@Autowired 注入 JdbcTemplate。
        3、jdbcTemplate API 增删改查。

五、业务层

  • Service
        1、@service 定义 Service Bean。
        2、@Autowired 注入 DAO。
        3、调用 DAO 方法。
        4、@Transactional 加入事务。
  • 事务的管控
        在Spring Boot中,使用事务非常简单,首先在主类Application上标注
            @EanbleTransactionManagement注解
            (开启事务支持,相当于XML中的<tx:annotation-driven/>配置方式),
            然后在访问Service方法上标注@Transactional注解即可。
        通过@EanbleTransactionManagement注解,Boot为应用自动装配了事务支持。
            这对用户并不透明,用户如果想自己定义事务管理器,则在Application类中
            添加一个即可,使用@Bean注解:
            @Bean
            public PlatformTransactionManager txManager(DataSource dataSource) {
                return new DataSourceTransactionManager(dataSource);
            }
        如果在实际的项目中需要分布式事务支持,那么,Boot也提供了很好的支持,
            它集成了Atomikos和Bitronix分布式事务处理框架,可以根据需要导入相应的启动器
            (spring-boot-starter-jta-atomikos或spring-boot-starter-jta-bitronix)。

六、展现层

  • 配置pom.xml依赖
        为了支持JSP与JSTL,添加了tomcat-embed-jasper及jstl两个模块依赖,
            并将模块的打包方式改为WAR。
  • 配置 Spring MVC 框架
        继承Spring Boot提供的Servlet初始化器SpringBootServletInitializer,
            重写SpringBootServletInitializer的configure()方法。
  • 处理登录请求
        1、POJO控制器类
            @Controller定义Controller Bean。
            @Autowired注入Service。
            调用Service方法。
            @RequestMapping指定方法如何映射请求路径。
        2、application.properties
            spring.mvc.view.prefix=/WEB-INF/jsp/
                指定视图路径前缀
            spring.mvc.view.suffix=.jsp
                指定视图文件后缀
  • JSP视图页面
        1、登录页面
        2、欢迎页面

七、运维支持

  • 运维支持
        1、在pom.xml文件中添加spring-boot-starter-actuator依赖。
        2、在application.properties的management.health.*选项中进行配置。
        3、启动访问http://localhost:8080/health。
        4、健康检测服务
            /health            显示应用的健康状态信息
            /configprops    显示应用中的配置参数的实际值
            /beans            显示应用中包含的Spring Bean的信息
            /env            显示从ConfigurableEnvironment得到的环境配置信息
            /metrics        显示应用的性能指标
            /trace            显示应用相关的跟踪(trace)信息
            /dump            生成一个线程dump
            /autoconfig        显示Spring Boot自动配置的信息
            /mappings        显示Spring MVC应用中通过“@RequestMapping”添加的路径映射
            /info            显示应用的基本信息
            /shutdown        关闭应用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值