SpringBoot学习

慕课网连接java

建立SpringBoot项目


项目目录结构

 

项目建立完成以后能够打开pom.xml看一下mysql

<?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>com.imooc</groupId>
    <artifactId>girl</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>girl</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.4.1.RELEASE</version>
        <relativePath/>
    </parent>
    <!--项目的编码格式-->
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <!--为项目添加web服务-->
        <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>

springboot 三种启动方式 

1.直接在idea启动

    2.(命令行模式:进入到项目路径下)mvn spring-boot:run

    3.(命令行模式:进入到项目路径下)编译程序 mvn install 进入target java -jar XXXX.jar

属性配置

.properties文件

在rescourse下面有属性文件,可经过属性文件对象的属性进行配置(application.properties):web

server.port=8081
server.comtent-path=/demo

girl.age=18
girl.name=小红
girl.cupSize=F

#配置文件中使用配置文件中的属性
people: "age:${girl.age},cupSize:${girl.cupSize}"

.yml文件

也可使用application.yml配置文件:spring

server:
  port: 8080
  context-path: /demo

girl:
  age: 18
  name: 小红
  cupsize: F

获取属性文件中的属性值

方式一

在java类中使用如下方法能够得到配置文件的属性sql

@Value("${girl.age}")           //获取.properties的属性值
    private String age;
    @Value("${girl.name}")
    private String name;
    @Value("${girl.cupSize}")
    private String cupSize;

girl每有一个属性就须要使用一次@value注解数据库

方式二

可以使用girl类一次性赋值进去apache

@Component
@ConfigurationProperties(prefix = "girl")     //获取前缀是girl的属性
public class Girl{
    private int age;
    private String name;
    private String cupSize;

/**
* 添加属性的setter和getter方法
*/
}

经过下面代码获取配置文件属性赋值以后的对象json

@Autowired
private Girl girl;

若是有多个配置文件,那么如何修改生产和测试环境下的配置文件内容呢?

总不能每次换版本都从新修改配置文件吧springboot

能够在rescourses文件夹新建application-pro.yml和application-test.yml两个配置文件app

并在两个文件中分别配置产品和测试所须要的属性及属性值

并在application.yml修改配置。决定运行时使用的是哪个属性配置文件(以下代码,使用的是application-test.yml的属性配置)

spring:
  profiles:
    active: test

SpringBoot中的注解

@Controller //声明控制器类

@RestController //该注解类的方法返回json数据;=@ResponseBody + @Controller

@RequestMapping(value = {"/hello", "/hi"}, method = RequestMethod.GET) 
/*              两个url路径均可以访问同一个方法
                当不指定请求方式时,get/post均可以请求到,可是不推荐。
                该注解能够给整个类指定Url*/

//处理url里面的参数:

@PathVariable //获取url中的数据

          @RequestMapping("/hello/{id}")
          public void hello(@PathVariable Integer id){}

@RequestParam //获取请求参数的值

@GetMapping/PostMapping //组合注解

数据库操做

准备阶段(添加依赖)

为了使用数据库,须要在pom.xml文件中,加入两个依赖:
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

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

添加配置

在application.yml文件中做相应配置:
1)mysql的相关配置
spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/dbgirl
    username: root
    password: root
2)jpa的配置
spring:
  jpa:
    hibernate:
      ddl-auto: update
    show-sql: true
ddl-auto:creat、update、none、creat-drop、validate
creat每次运行时,都会建立新表(如有,删除原有的,再建新的),update不会删除原有的,保留改变的,更新,create-drop不运行时,删表,none什么也不做,validate验证类里面属性是否与表结构一致,不一致报错;

新建数据库表

新建数据库;
在main/imooc下新建Girl类,(和数据库对应)包括:
1)类的前面有@Entity注解(表示此类对应数据库中的一个表)
2)类中包含属性,其前有注解@Id @GeneratedValue,(主键并自增)
3)有无参的构造方法,以及set和get方法;

数据库操做

建立Dao接口继承JpaRepository接口,该接口有泛型<Girl , id>
能够用该接口实例进行数据库操做

public interface GirlRepository extends JpaRepository<Girl, Integer> {
}

数据库的一系列操做

@Autowired
    private GirlRepository girlRepository;

    @GetMapping(value = "/girls")
    public List<Girl> girlList() {
        return girlRepository.findAll();
    }

    @GetMapping(value = "/girls/{id}")
    public Girl girlFindOne(@PathVariable("id") Integer id) {
        return girlRepository.findOne(id);
    }

   ................

若是要实现本身添加的方法,有严格的命名规范(在接口GirlRepository中添加方法)

public interface GirlRepository extends JpaRepository<Girl, Integer> {

    //经过年龄来查询
    public List<Girl> findByAge(Integer age);
}

事务的使用

实现事务,能够在@Service中,指定方法前加@Transactional注解

mysql 表存储引擎为MyISAM ,不支持事物回滚,须要设置为InnoDB

相关文章
相关标签/搜索