零基础认识 Spring Boot

优质文章,及时送达
640?wx_fmt=jpeg

作者 | Lee宇斌

来源 | blog.csdn.net/qq_30258957

新建项目


New Project – Spring Initializr – 选择web

640

确定文件路径

640

选择版本,组件

640

选择路径进行保存,删除没用的文件

640

启动SpringBoot项目
运行自动生成的XXApplication类,其必须带有 @SpringBootApplication 注解,右键Run XX即可启动项目。 
640?wx_fmt=png
idea在初次启动的时候需要加载许多东西,建议maven使用阿里云的仓库,加载完之后才会出现Run XX按钮。当出现此页面的时候,说明springBoot启动成功  
640
怎么编写一个Controller文件呢?添加类似Spring的注解,启动即可访问。(也可以先编译,通过命令启动)
640?wx_fmt=png
由于代码补全快捷键冲突了,所以需要进行修改。
配置文件使用


新建的项目中,application.properties就是新建项目默认的配置文件。这里可以对访问端口和访问路径进行配置。

640?wx_fmt=png
相似的,application.yml也是默认配置文件,其使用分组的格式,:之后必须加空格,子内容前面为tab键  
640?wx_fmt=png
yml可以配置java代码中注入的值,直接写 键:值 ,用 @Value("${键}") 的方式即可注入。 直接用${}就可以在xml中进行引用。
640?wx_fmt=png
当配置文件需要频繁变换,怎么灵活切换呢?可以将其写成两个配置文件,而主配置文件只要选好要哪一个配置文件即可。 新建两个配置文件 application-dev.yml   &  application-prod.yml,在application.yml中指定调用哪一个配置文件:
640?wx_fmt=png
调用dev后缀的配置文件。
注解的使用
@Component  & @ConfigurationProperties


一个个属性注入太麻烦了,有没有注入对象的方法呢?修改配置文件为组的形式,编写pojo对象映射,再将pojo对象注入


640?wx_fmt=png
pojo对象,需要 @Component 定义Spring管理Bean, @ConfigurationProperties 指定前缀内容。
@Component 注解相当于:@Service,@Controller,@Repository,并下面类纳入进spring容器中管理。这样才能被下一层@Autowired注入该对象。
640?wx_fmt=png
运行 @SpringBootApplication ,即可访问Controller的内容。 
640?wx_fmt=png


@RestController

@RestController  =  @ResponseBody + @Controller  

@RequestMapping

@RequestMapping可以指定多个value: @RequestMapping(value={"/say","/hi"}) 。 
@RequestMapping的Get请求获取参数的方式:
方式一:PathVariable:访问地址中间参数传输:

640?wx_fmt=png

url访问地址可以将id中间位置:http://localhost:8080/hello/233333/say


方式二:RequestParam:访问地址后面传值: 

640?wx_fmt=png

url访问方式: http://localhost:8080/hello/say?id=110


添加默认值: (@RequestParam(value = "id", required = false, defaultValue = "0") Integer id)  ,如何不传id,它就会默认为0。

@RequestMapping(value="/say",method = RequestMethod.GET)也可以写成GetMapping(value="/say")的方式。


@Transactional

当我一个Service的方法里有两条sql插入操作,怎么保证其同时执行成功或者同时执行失败?在方法上面添加 @Transactional 注解,即说明其为同个事务。
640?wx_fmt=png
只有在innodb引擎下事务才能工作。所以需要在数据库中执行 ALTER TABLE girl ENGINE=innodb 命令。

数据库操作


创建表


要操作数据库,首先添加组件

pom.xml添加组件
640?wx_fmt=png
application.yml配置数据库连接:
640?wx_fmt=png
ddl-auto: create :每次都重新创建数据库,数据不保存,要保存得用 update
show-sql: true :打印sql语句。
并且需要在mysql中创建对应的数据库。配置完上方的jpa之后,编写pojo对象,添加 @Entity 注解,标注id @Id ,自增长 @GeneratedValue ,运行之后数据库就会自动生成对应表。 ddl-auto: create 配置将决定表是创建create还是更新update      
640?wx_fmt=png


JPA实现增删改查


新建接口,继承 JpaRepository<Girl, Integer> ,注入接口,直接调用 JpaRepository 中的CRUD方法即可实现查询所有。    
新建接口
640?wx_fmt=png


调用CRUD方法  
 
   

/**

    * 查询所有

    * @return

    */


   @GetMapping(value = "/girls")

   public List<Girl> girlList() {

       return girlRepository.findAll();

   }



   /**

    * 根据id查询

    * @param id

    * @return

    */


   @GetMapping(value = "/girlById/{id}")

   public Girl girlFindOne(@PathVariable("id") Integer id) {

       Optional<Girl> temp = girlRepository.findById(id);

       //从返回值中获取值

       return temp.get();

   }



   /**

    * 添加内容

    * @param age

    */


   @PostMapping(value = "/girlAdd")

   public Girl girlAdd(@RequestParam("size") String size, @RequestParam("age") Integer age) {

       Girl girl = new Girl();

       girl.setAge(age);

       girl.setSize(size);

       return girlRepository.save(girl);

   }



   /**

    * 更新

    */


   @PutMapping(value = "/moGirlById/{id}")

   public Girl girlUpdate(@PathVariable("id") Integer id, @RequestParam("age") Integer age,@RequestParam("size") String size) {

       Girl girl = new Girl();

       girl.setId(id);

       girl.setAge(age);

       girl.setSize(size);

       return girlRepository.save(girl);

   }



   /**

    * 删除

    */


   @DeleteMapping(value = "/delGirls/{id}")

   public void girlDelete(@PathVariable("id") Integer id) {

       Girl girl = new Girl();

       girl.setId(id);

       girlRepository.delete(girl);

   }


如果某些方法在JpaRepository中不存在,可以自己使用扩展方法,写在接口中,调用即可。但是要求方法名要规范。
640?wx_fmt=png
640?wx_fmt=png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值