此文仅是作者学习记录,非常不适合作为教程,若您想系统的学识SpringBoot框架,还建议前往各类mooc上学习。
起初,我计划起一个类似于Spring Boot学习之路的名字,可是这两天都在踩坑与爬坑之间挣扎。。。所以就顺手起了个爬坑手记。
第一个问题,为什么会有微处理架构,而且渐渐成为主流趋势呢?
许多项目被作为一个单体进行打包部署,例如:许多 Java 应用程序被打包成 WAR 文件部署在如 Tomcat 或者 Jetty 之类的应用服务器上。
然而,随着时间的推移,项目会变得越来越臃肿。这给更新,维护造成了极大的困扰。
微服务架构的主要思路是将应用程序分解为一套较小的互连服务。一些微服务会暴露一个供其他微服务或应用客户端消费的 API。例如,后端服务会提供一套简单的REST API。
目前我的对于Spring Boot的理解就是,它帮助我们对项目进行配置,在第一次使用它时,我就感到了它的便捷。
第一个SpringBoot程序:
接下来我们要创建一个项目,实现与数据库的简单交互:
1 使用IDEA创建项目:
选择:web中的web,以及SQL中的Mysql和JDBC
2:编辑配置文件
我们使用.yml类型的文件进行配置,在resource文件夹新建application.yml文件,写入配置:(注意port: 后要接一个空格)
server:
port: 8080
3:Hello Spring
在src->java->(自定义的包名)中新建HelloController.java文件
@RestController
public class HelloController{
@RequestMapping(value = "/hello",method = RequestMethod.Get)
public String Hello(){
return "Hello Spring"
}
}
接下来打开浏览器,地址栏输入localHost:8080,就会出现“Hello Spring"
4:数据库交互
首先编辑配置文件,为了方便日后的管理,可以选择将配置文件写入单独的文件中。新建application-dev.yml,写入
server:
port: 8080
将application.yml文件改写成:
spring:
profiles:
active: dev
这样即可引入application-dev.yml中的配置。我们会发现,active后跟另一配置文件中的后缀(dev)。
接下来配置数据源:
在application.yml中加入:
spring:
datasource:
username: root
passward: XXX
url: jdbc:mysql://localhost:3306/db_name
driver_class_name: com.mysql.jdbc.Driver
在这里时我猜到了第一个坑,我的mysql只能通过localhost访问,不能通过ip访问,通过授权的方式也不行,在我找了很久,终于找到了他的配置文件,,在/etc/mysql/mysql.conf.d/mysqld.cnf中终于找到了有关地址绑定的配置,将其注释掉,才实现了通过ip链接数据库。
接下来配置jpa:
首先什么是jpa呢:
JPA全称Java Persistence API,是一组用于将数据存入数据库的类和方法的集合。JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。
通过spring boot jpa 我们可以非常便捷的进行数据库操作。在application中加入:
jpa:
hibernate:
ddl-auto: create
show-sql: true
hibernate是一个jpa产品,它可以自动的生成sql语句。
接下来在包中添加Girl.java,在这个类中,我们将定义数据库中的一张表
@Entity
public class Girl{
@Id
@GeneratedValue
private Integer id;
private String cupSize;
@colum(name = "girlage")
private Integer age; }
jpa定义了一种定义,可以将常规的普通Java对象(有时被称作POJO)映射到数据库。
这些普通Java对象被称作Entity Bean。@Entity说明这个class是实体类,并且使用默认的orm规则,即class名即数据库表中表名,class字段名即表中的字段名。如果想改变这种默认的orm规则,就要使用@Table来改变class名与数据库中表名的映射规则,@Column来改变class中字段名与db中表的字段名的映射规则
运行,我们可以在控制台中看到如下输出:
在向刚刚建立的表中插入一条数据后,可以看到,
对数据库进行查询:
我们需要一个继承JpaRepository的借口,在JpaRepository接口及其父类中,定义了一系列对数据库进行增删改查的函数。我们也可以自定义函数。
在包中新建GirResponsitory借口,继承JpaRepository:
public interface GirlResponsitory extends jpaRepository<Girl,Integer>{
public Girl findById(Integer id);
}
注意函数名的格式。
再定义Controller对请求进行相应(通过调用GirlResponsitory中的函数)
在包中新建GirlController.java:
@RestController
public class GirlController{
@AutoWired
private GirlResponsitory girlResponsitory;
@GetMapping(value = "/girls/{id}")
public Girl findOne(@PathVariable("id") Integer id){
return girlResponsitory.findOneById(id);
}
}