zoukankan      html  css  js  c++  java
  • SpringBoot2.0学习笔记之项目配置

    一、SpringBoot简介:

       SpringBoot是由Pivotal团队提供的全新框架,设计目的是用来简化Spring应用的创建、运行、调试、部署等。

    使用SpringBoot可以做到专注于Spring应用的开发,而无需过多关注XML配置。

    SpringBoot使用COC(Convention Over Configuration)的理念,提供了针对企业应用开发各种场景的很多spring-boot-starter自动配置依赖模块,使得企业应用开发中各种场景的Spring应用更加快速和高效。

    1、SpringBoot优点

       使编码变得简单:推荐使用注解

       使配置变得简单:自动配置、快速构建项目、快速集成新技术的能力。

       使部署变得简单:内嵌Tomcat、Jetty等web容器。

       使监控变得简单:自带项目监控。

    2、SpringBoot2.0重要改变

       基于Spring5构建

       为各种组件的响应式编程提供了简化配置,如:Reactive Spring Data、Reactive Spring Security。

       要求Java版本必须是Java 8或更高版本。

       要求Gradle4或更高版本,Maven3.2或更高版本。

       要求Tomcat8或更高版本,Hibernate5.2或更高版本,Thymeleaf或更高版本。

    3、常用依赖模块

       日志依赖模块spring-boot-starter-logging

       Web开发依赖模块spring-boot-starter-web

     

    4、HelloWorldApplication 主类(创建项目自动生成的)

    点主类启动SpringBootApp就可以运行,不需tomcat

    主类代码如下

    package com.guo;

    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;

    @SpringBootApplication
    public class HelloWorldApplication {

     public static void main(String[] args) {
      SpringApplication.run(HelloWorldApplication.class, args);
     }
    }

     

    二、项目配置

    package com.guo.controller;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
     
    @Controller  //新版本springboot,加了个RestController,下面的@ResponseBody 可以省略
    public class HelloWorldController {
             @ResponseBody  //可以以ajax返回了
             @RequestMapping("/helloWorld") //地址...8080/helloWorld 运行
             public String say(){
                       return "Hello SpringBoot";
             }
    }

    Application.properties是整个的配置文件,相当于web.xml

    server.port=8888  //把接口8080 改成8888
    server.context-path=/HelloWorld   //不起作用,改成 server.servlet.context-path
    server.servlet.context-path=/HelloWorld//输入 …8888/HelloWorld,出现下图说明成功

    以后运行项目输入地址格式为http://localhost:8888/HelloWorld/加项目映射地址

     

     

    然后在…8888/HelloWorld/@RequestMapping("/helloWorld")中的helloWorld可以返回say方法

    输出 Hello SpringBoot

    三、.以上是自动配置的,下面是自定义

    在Application.properties继续添加下面代码

    Hello1=spring boot u4F60u597D  //key=value的形式,不支持汉字用编码代替

    这个Hello1怎么用,需要在HelloWorldController.java 加

    @Value("${Hello1}")
             private String Hello1;

    这样就被注入进来了, 将return值改为Hello1。

    然后输入网址…8888/HelloWorld/(@RequestMapping("/helloWorld")中的)helloWorld ,出现Hello1对应的value值就正确了

    四、模拟数据库连接怎么被调用,配置文件Application.properties中加入

    mysql.jdbcName=com.mysql.jdbc.Driver
    mysql.dbUrl=jdbc:mysql://localhost:3306/db_boot
    mysql.userName=root
    mysql.password=123

     

    然后在Controller中注入@Value(${ })中的属性是配置文件中自定义的key

           

      @Value("${mysql.jdbcName}")
             private String jdbcName;
             @Value("${mysql.dbUrl}")
             private String dbUrl;
             @Value("${mysql.userName}")
             private String userName;
             @Value("${mysql.password}")
             private String password;
    Controller中新加一个请求方法 showjdbc
    @ResponseBody 
             @RequestMapping("/showJdbc") 
             public String showJdbc(){
                       return "mysql.jdbcName:"+jdbcName+"<br/>"
                                         +"mysql.dbUrl:"+dbUrl+"<br/>"
                                         +"mysql.userName:"+userName+"<br/>"
                                         +"mysql.password:"+password+"<br/>"
                       }

     

    输入localhost:8888/HelloWorld/showJdbc

     

     

    五、.链接数据库有四个属性,一个一个写注入@Value()...很麻烦

    这时想到了用对象封装

    新建package com.guo.properties;在包下新建个MysqlProperties.java

    @Component //这配置这个类相当于Spring中的bean,所以谁引入要在前加个@Resource
    @ConfigurationProperties(prefix="mysql") // ConfigurationProperties配置,prefix的值是key的前缀 
    //(ConfigurationProperties会报个警告,点击添加,会自动在pom.xml添加如下jar包依赖 // <dependency> // <groupId>org.springframework.boot</groupId> // <artifactId>spring-boot-configuration-processor</artifactId> // <optional>true</optional> // </dependency> //) public class MysqlProperties { //前缀已经给配置了,所以代码写成如下这样就行了,然后在获取get set方法 private String jdbcName; private String dbUrl; private String userName; private String password; //get set 方法代码
     
     

    六、.然后在Controller中把原先的代码

             @Value("${mysql.jdbcName}")

             private String jdbcName;

             @Value("${mysql.dbUrl}")

             private String dbUrl;

             @Value("${mysql.userName}")

             private String userName;

             @Value("${mysql.password}")

             private String password;

    删除替换成

    @Resource  //相当于注入个bean
    private MysqlProperties mysqlProperties;
     

    七、再然后showJdbc方法中的代码

    return "mysql.jdbcName:"+jdbcName+"<br/>"

                                         +"mysql.dbUrl:"+dbUrl+"<br/>"

                                         +"mysql.userName:"+userName+"<br/>"

                                         +"mysql.password:"+password+"<br/>";

    改为

           

      return "mysql.jdbcName:"+mysqlProperties.getJdbcName()+"<br/>"
                                         +"mysql.dbUrl:"+mysqlProperties.getDbUrl()+"<br/>"
                                         +"mysql.userName:"+mysqlProperties.getUserName()+"<br/>"
                                         +"mysql.password:"+mysqlProperties.getPassword()+"<br/>";

     

    体现了面向对象的思想,这很方便,别的地方要用的话,写一个实体直接引用就行了。

    然后在输 localhost:8888/HelloWorld/showJdbc 运行结果依然是一样的

     

    八、出现如下错误

    错误: 找不到或无法加载主类 com.guo.HelloWorldApplication

    解决:

    点击项目右键-->Properties-->Java Compiler-->Building-->Enable project specific settings-->Build path problems-->选中Abort   Incomplete build path/Circular dependencies  这两选项修改为Warning,然后保存即可。

    参考书目:《Spring Boot 2企业应用实战》 作者:疯狂软件  出版社:电子工业出版社

     
    本博客为博主的学习笔记,不作任何商业用途。
  • 相关阅读:
    CFgym102394I
    Infinite Fraction Path (后缀数组)
    2016ACM/ICPC亚洲区沈阳站-重现赛
    2sat学习笔记
    bzoj4176
    bzoj3309
    6C
    3U
    3T
    3R
  • 原文地址:https://www.cnblogs.com/guo7533/p/8699819.html
Copyright © 2011-2022 走看看