zoukankan      html  css  js  c++  java
  • SpringBoot 入门

    1、SpringBoot是什么?

    Spring Boot为Java开发人员提供了一个很好的平台,可以开发一个可以运行的独立和生产级Spring应用程序。可以开始使用最少的配置,而无需进行整个Spring配置设置。

    2、优点

    Spring Boot为其开发人员提供以下优势 -
        易于理解和开发Spring应用
        提高生产力
        缩短开发时间

    3、目标

    Spring Boot的设计目标如下 -
        避免在Spring中进行复杂的XML配置
        以更简单的方式开发生产就绪的Spring应用程序
        减少开发时间并独立运行应用程序
        提供一种更简单的应用程序入门方式

    4、SpringBoot启动器

    所有Spring Boot启动程序都遵循相同的命名模式spring-boot-starter-*,其中*表示它是应用程序的一种类型。

    5、SpringBoot入口

    Spring Boot Application的入口点是包含@SpringBootApplication注释的类。该类应具有运行Spring Boot应用程序的主要方法。 
    @SpringBootApplication注释包括自动配置,组件扫描和Spring Boot配置。 如果将@SpringBootApplication批注添加到类中,则无需添加@EnableAutoConfiguration,@ComponentScan和@SpringBootConfiguration批注。@SpringBootApplication注释包括所有其他注释。 请注意以下代码以便更好地理解
    - import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }

    6、Maven依赖

    对于Maven配置,应该继承Spring Boot Starter父项目来管理Spring Boot Starters依赖项。 因此只需在pom.xml 文件中继承启动父级,如下所示。
    <parent>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-parent</artifactId>
       <version>1.5.8.RELEASE</version>
    </parent>
    XML
    
    应该指定Spring Boot父 Starter依赖项的版本号。 然后,对于其他启动器依赖项,不需要指定Spring Boot版本号。 观察下面给出的代码 -
    <dependencies>
       <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-web</artifactId>
       </dependency>
    </dependencies>

    7、SpringBoot项目结构

    com
        +- abysm
            +- myproject
                +- SpringBootApplication.java      (入口,规定和其他包同级目录|
                +- model
                |    +- Product.java
                +- dao
                |    +- ProductRepository.java
                +- controller
                |    +- ProductController.java
                +- service
                |    +- ProductService.java
    
    SpringBootApplication.java文件应该声明main方法和@SpringBootApplication。 请遵守下面给出的代码以便更好地理解 -
    
    package com.abysm.myproject;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    @SpringBootApplication
    public class SpringBootApplication{
       public static void main(String[] args) {
        SpringBootApplication.run(Application.class, args);
      } }

    8、配置不同环境的yml配置文件

    Spring Boot项目开发部署过程中,通常会有多套环境(开发dev、测试test、预生产rc,生产pro),每套环境的配置是不同的。
    将所有环境共同的参数配置在同一个文件中;再将每套环境不同的参数配置在各自文件中,可以减少部署错误的概率,同时项目可读性好, application.yml 配置共同的参数,并确定当前运行环境
    spring: 
      profiles:
        active: dev

    这里的spring.profiles.active=dev即表示,当前是dev环境;application-{profile}.yml就对应application-dev.yml,{profile}的取值可以是dev, test, rc, pro

    application-dev.yml

    server: 
      port: 8080
     
    spring:
      profiles: dev
      datasource:
        name: test
        url: jdbc:mysql://127.0.0.1:3306/springboot?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true
        username: root
        password: root
        # 使用druid数据源
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.jdbc.Driver
        filters: stat
        maxActive: 20
        initialSize: 1
        maxWait: 60000
        minIdle: 1
        timeBetweenEvictionRunsMillis: 60000
        minEvictableIdleTimeMillis: 300000
        validationQuery: select 'x'
        testWhileIdle: true
        testOnBorrow: false
        testOnReturn: false
        poolPreparedStatements: true
        maxOpenPreparedStatements: 20
    

     9、配置随机端口

    在application.properties 文件中,server.port属性设置随机端口号:
      server.port = 0
    
    在application.yml 文件中,找到如下内容 -
      server: 
         port: 0- 如果启动Spring Boot应用程序时server.port指定值为0,则Tomcat使用随机端口号。

    10、使用thymeleaf模板引擎

    Thymeleaf将文件转换为格式良好的XML文件。它包含6种类型的模板,如下所示 -

    • XML
    • 有效的XML
    • XHTML
    • 有效的XHTML
    • HTML5
    • 旧版HTML5

    除旧版HTML5之外的所有模板都指的是格式正确的有效XML文件。 旧版HTML5允许我们在网页中呈现HTML5标记,包括非封闭标记。

    package com.abysm.demo.controller;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    @Controller
    public class WebController {
       @RequestMapping(value = "/index")
       public String index() {
          return "index";
       }
    }
    在上面的示例中,请求URI是/index,被重定向到index.html文件。 请注意,index.html 文件应放在templates目录下所有JS和CSS文件应放在static目录下

     Maven用户可以将以下依赖项添加到pom.xml 文件中 -

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

    11、跨域资源共享CORS

    跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript施加的安全限制。
    
    所谓同源是指,域名,协议,端口均相同,不明白没关系,举个栗子:
    
    http://www.123.com/index.html 调用 http://www.123.com/server.PHP (非跨域)
    
    http://www.123.com/index.html 调用 http://www.456.com/server.php (主域名不同:123/456,跨域)
    
    http://abc.123.com/index.html 调用 http://def.123.com/server.php(子域名不同:abc/def,跨域)
    
    http://www.123.com:8080/index.html调用 http://www.123.com:8081/server.php(端口不同:8080/8081,跨域)
    
    http://www.123.com/index.html 调用 https://www.123.com/server.php(协议不同:http/https,跨域)
    
    请注意:localhost和127.0.0.1虽然都指向本机,但也属于跨域。

    在控制器方法中启用CORS

    
    

    需要通过对控制器方法使用@CrossOrigin注解来设置RESTful Web服务的起源。 @CrossOrigin注源支持特定的REST API,而不支持整个应用程序。

    @RequestMapping(value = "/products")
    @CrossOrigin(origins = "http://localhost:8080")
    public ResponseEntity<Object> getProduct() {
       return null;
    }
    

    全局CORS配置

    需要定义显示的@Bean配置,以便为Spring Boot应用程序全局设置CORS配置支持。

    @Bean
    public WebMvcConfigurer corsConfigurer() {
       return new WebMvcConfigurerAdapter() {
          @Override
          public void addCorsMappings(CorsRegistry registry) {
             registry.addMapping("/products").allowedOrigins("http://localhost:9000");
          }    
       };
    }
    

     12、SpringBoot国际化

    国际化是一个使应用程序适应不同语言和区域而无需对源代码进行工程更改的过程。 用它来说,国际化是对本地化的准备。

    消息源

    默认情况下,Spring Boot应用程序从类路径下的src/main/resources文件夹中获取消息源。 缺省语言环境消息文件名应为message.properties,每个语言环境的文件应命名为messages_XX_XX.properties“XX”表示区域代码和国家代码。

    应将所有消息属性设置为键值对。 如果在语言环境中找不到任何属性,则应用程序将使用messages.properties 文件中的默认属性。

    默认的messages.properties 如下所示 -

    welcome.text=Hi Welcome to Everyone
    

    中文对应的属性文件:message_zh_CN.properties 如下所示 -

    welcome.text=大家好

    HTML文件

    在HTML文件中,使用语法#{welcome.text}显示属性文件中的消息。

    <h1 th:text = "#{welcome.text}"></h1>
    
  • 相关阅读:
    sql-字符串拼接单,双引号及$
    SQL-SQLServer数据库查询
    SQL-数据库不能以127.0.0.1登录
    Excel-VBA-ActiveX编译错误:用户定义类型未定义
    Excel-VBA中,取:存储过程时,报:对象关闭时,不允许操作!
    JS
    小程序(Wepy)--生成海报图片
    小程序--时间处理(显示几分钟前,,几小时前,,几天前...)
    小程序--wepy省市区三级联动选择
    对于 wepy 不是内部或外部命令 -- 的解决办法
  • 原文地址:https://www.cnblogs.com/wangzh1guo/p/9967402.html
Copyright © 2011-2022 走看看