springboot簡單例子,springboot例子

來源:互聯網
上載者:User

springboot簡單例子,springboot例子

一.什麼是spring boot

Takes an opinionated view of buildingproduction-ready Spring applications. Spring Boot favors convention overconfiguration and is designed to get you up and running as quickly as possible.

摘自官網

翻譯:採納了建立生產就緒Spring應用程式的觀點。 Spring Boot優先於配置的慣例,旨在讓您儘快啟動和運行。

springboot 致力於簡潔,讓開發人員寫更少的配置,程式能夠更快的運行和啟動。它是下一代javaweb架構,並且它是spring cloud(微服務)的基礎。

二、搭建第一個sping boot程式

可以在start.spring.io上建項目,也可以用idea構建。本案列採用idea.

具體步驟:

new prpject -> spring initializr ->{name :firstspringboot , type: mavenproject,packaging:jar ,..->{spring version :1.5.2  web: web } -> ....

應用建立成功後,會產生相應的目錄和檔案。

其中有一個Application類,它是程式的入口:

@SpringBootApplication
publicclass FirstspringbootApplication {
 
    publicstaticvoidmain(String[] args) {
        SpringApplication.run(FirstspringbootApplication.class, args);
    }
}

在resources檔案下下又一個application.yml檔案,它是程式的設定檔。預設為空白,寫點配置 ,程式的連接埠為8080,context-path為 /springboot:

server:
  port: 8080
  context-path: /springboot

寫一個HelloController:

@RestController     //等同於同時加上了@Controller和@ResponseBody
publicclass HelloController {
 
    //訪問/hello或者/hi任何一個地址,都會返回一樣的結果
    @RequestMapping(value = {"/hello","/hi"},method = RequestMethod.GET)
    public String say(){
        return"hi you!!!";
    }
}

運行 Application的main(),呈現會啟動,由於springboot自動內建了servlet容器,所以不需要類似傳統的方式,先部署到容器再啟動容器。只需要運行main()即可,這時開啟瀏覽器輸入網址:localhost:8080/springboot/hi,就可以在瀏覽器上看到: hi you!!!

三.屬性配置

在appliction.yml檔案添加屬性:

server:
  port: 8080
  context-path: /springboot
 
girl:
  name: B
  age: 18
  content: content:${name},age:${age}

在java檔案中,擷取name屬性,如下:

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

也可以通過ConfigurationProperties註解,將屬性注入到bean中,通過Component註解將bean註解到spring容器中:

@ConfigurationProperties(prefix="girl")
@Component
publicclassGirlProperties {
 
    private String name;
    privateint age;
 
    public String getName() {
        return name;
    }
 
    publicvoidsetName(String name) {
        this.name = name;
    }
 
    publicintgetAge() {
        return age;
    }
 
    publicvoidsetAge(int age) {
        this.age = age;
    }
}

另外可以通過設定檔制定不同環境的配置文,具體見源碼:

spring:
  profiles:
    active: prod
四.通過jpa方式操作資料庫

匯入jar ,在pom.xml中添加依賴:

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
 
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

在appilication.yml中添加資料庫配置:

spring:
  profiles:
    active: prod
 
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/dbgirl?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8
    username: root
    password: 123
 
  jpa:
    hibernate:
      ddl-auto: create
    show-sql: true

這些都是資料庫常見的一些配置沒什麼可說的,其中ddl_auto: create代表在資料庫建立表,update代表更新,初次開機需要create ,如果你想通過hibernate註解的方式建立資料庫的表的話,之後需要改為 update.

建立一個實體girl,這是基於hibernate的:

@Entity
publicclassGirl {
 
    @Id
    @GeneratedValue
    private Integer id;
    private String cupSize;
    private Integer age;
 
    publicGirl() {
    }
 
    public Integer getId() {
        return id;
    }
 
    publicvoidsetId(Integer id) {
        this.id = id;
    }
 
    public Integer getAge() {
        return age;
    }
 
    publicvoidsetAge(Integer age) {
        this.age = age;
    }
 
    public String getCupSize() {
        return cupSize;
    }
 
    publicvoidsetCupSize(String cupSize) {
        this.cupSize = cupSize;
    }
}

建立Dao介面, springboot將介面類會自動註解到spring容器中,不需要我嗎做任何配置,只需要繼承JpaRepository即可:

//其中第二個參數為Id的類型
publicinterfaceGirlRepextendsJpaRepository<Girl,Integer>{
   }

建立一個GirlController,寫一個擷取所有girl的api和添加girl的api,自己跑一下就可以了:

 
@RestController
publicclassGirlController {
 
    @Autowired
    private GirlRep girlRep;
 
    /**
     * 查詢所有女生列表
     * @return
     */
    @RequestMapping(value = "/girls",method = RequestMethod.GET)
    public List<Girl> getGirlList(){
        return girlRep.findAll();
    }
 
    /**
     * 添加一個女生
     * @param cupSize
     * @param age
     * @return
     */
    @RequestMapping(value = "/girls",method = RequestMethod.POST)
    public Girl addGirl(@RequestParam("cupSize") String cupSize,
                        @RequestParam("age") Integer age){
        Girl girl = new Girl();
        girl.setAge(age);
        girl.setCupSize(cupSize);
        return girlRep.save(girl);
    }
 
   } 


 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.