zoukankan      html  css  js  c++  java
  • sping boot 笔记

      参考  http://blog.csdn.net/catoop/article/details/50501664#



    一、简介

    Spring 官方网站本身使用Spring 框架开发,随着功能以及业务逻辑的日益复杂,应用伴随着大量的XML配置文件以及复杂的Bean依赖关系。
    随着Spring 3.0的发布,Spring IO团队主键开始摆脱XML配置文件,并且在开发过程中大量使用“约定优先配置”(convention over configuration)的思想来摆脱Spring框架中各种复杂的配置,衍生了Java Config。

    Spring Boot正是在这样的一个背景下被抽象出来的开发框架,它本身并不提供Spring框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于Spring框架的应用程序。也就是说,它并不是用来替代Spring的解决方案,而是和Spring框架紧密结合用于提升Spring开发者体验的工具。同时它集成了大量常用的第三方库配置(例如Jackson, JDBC, Mongo, Redis, Mail等等),Spring Boot应用中这些第三方库几乎可以零配置的开箱即用(out-of-the-box),大部分的Spring Boot应用都只需要非常少量的配置代码,开发者能够更加专注于业务逻辑。

    该项目旨在帮助开发者更容易地创建基于Spring的应用程序和服务,使得现有的和新的Spring开发者能够最快速地获得所需要的Spring功能。

    Spring Boot不生成代码,且完全不需要XML配置。其主要目标如下:
    - 为所有的Spring开发工作提供一个更快、更广泛的入门经验。
    - 开箱即用,你也可以通过修改默认值来快速满足你的项目的需求。
    - 提供了一系列大型项目中常见的非功能性特性,如嵌入式服务器、安全、指标,健康检测、外部配置等。

    博主准备写一组 Spring-Boot 入门的帖子,仅为了抛砖引玉,让需要的同学可以尽快了解如何使用Spring-Boot,内容参考官网和网上的资料(http://projects.spring.io/spring-boot/)。


    下面是目录:

    Spring-Boot 入门

    Spring-Boot Controller

    Spring-Boot Servlet

    Spring-Boot 过滤器、监听器

    Spring-Boot 拦截器

    Spring-Boot 静态资源处理

    Spring-Boot 启动加载数据

    Spring-Boot 日志记录

    Spring-Boot JDBC 连接数据库

    Spring-Boot JPA 连接数据库

    Spring-Boot MyBatis 连接数据库

    Spring-Boot 连接数据库 - 多数据源

    Spring-Boot Shiro 权限管理

    Spring-Boot 集成Shiro和CAS

    Spring-Boot 环境变量读取 和 属性对象的绑定

    Spring-Boot 动态数据源(多数据源自动切换)

    Spring-Boot 事务的使用

    Spring-Boot 部署与服务配置


    开发工具:Spring Tool Suite v_3.7.2(简称STS)
    官网地址:http://spring.io/tools/sts

    二、入门实例 - HelloWorld

    File > New > Spring Starter Project
    这里写图片描述
    这里写图片描述

    Next > Finish

    项目创建完成:
    这里写图片描述

    可以看出,项目源码就一个Java类,在pom.xml中有spring-boot-starter-web的依赖。

    SpringBootSampleApplication.java

    package org.springboot.sample;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    public class SpringBootSampleApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(SpringBootSampleApplication.class, args);
        }
    }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    pom.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>org.springboot.sample</groupId>
        <artifactId>spring-boot-sample</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <packaging>jar</packaging>
    
        <name>spring-boot-sample</name>
        <description>Spring Boot Sample Web Application</description>
    
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>1.3.1.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
    
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <java.version>1.8</java.version>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</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>
    
    
    </project>
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49

    这样就完成了项目的创建,下面我们创建一个 HelloController.java 定义3个方法

    package org.springboot.sample.controller;
    
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    @RequestMapping("/hello")
    public class HelloController {
    
        @RequestMapping
        public String hello() {
            return "Hello Spring-Boot";
        }
    
        @RequestMapping("/info")
        public Map<String, String> getInfo(@RequestParam String name) {
            Map<String, String> map = new HashMap<>();
            map.put("name", name);
            return map;
        }
    
        @RequestMapping("/list")
        public List<Map<String, String>> getList() {
            List<Map<String, String>> list = new ArrayList<>();
            Map<String, String> map = null;
            for (int i = 1; i <= 5; i++) {
                map = new HashMap<>();
                map.put("name", "Shanhy-" + i);
                list.add(map);
            }
            return list;
        }
    }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39

    然后现在可以直接运行 SpringBootSampleApplication 的main方法,和执行普通java程序一样。
    然后可以看到spring-boot 内置server容器(默认为Tomcat),这一切spring-boot 都帮我们做好了。

    控制台输出内容 Started SpringBootSampleApplication in 7.358 seconds (JVM running for 9.154) 表示服务已经启动。

    在浏览器输入我们3个请求便可看到结果。
    http://localhost:8080/hello
    输出:Hello Spring-Boot
    http://localhost:8080/hello/info?name=shanhy
    输出:{“name”:”shanhy”}
    http://localhost:8080/hello/list
    输出:[{“name”:”Shanhy-1”},{“name”:”Shanhy-2”},{“name”:”Shanhy-3”},{“name”:”Shanhy-4”},{“name”:”Shanhy-5”}]

    通过我们的Hello实例,相信大家一目了然,可谓spring-boot创建一个项目如此简单,完全可以在几分钟内将服务启动。
    spring-boot抛弃繁琐的配置,让开发人员更专注与业务逻辑的实现。后面几篇文章将会对spring-boot的多个方面通过实例的方式呈现给大家。




  • 相关阅读:
    Html禁止粘贴 复制 剪切
    表单标签
    自构BeanHandler(用BeansUtils)
    spring配置中引入properties
    How Subcontracting Cockpit ME2ON creates SD delivery?
    cascadia code一款很好看的微软字体
    How condition value calculated in sap
    Code in SAP query
    SO Pricing not updated for partial billing items
    Javascript learning
  • 原文地址:https://www.cnblogs.com/honey01/p/7903375.html
Copyright © 2011-2022 走看看