springboot研究(上篇)

概念

SpringBoot作为spring家族新推出的一款产品旨在更快速方便的搭建一个企业级的web工程,进而取代以往开发者繁琐的配置各种xml文件,耗时的搭建环境,而且为千万级数据量的分布式工程作为基础铺垫,为springcloud系列打下坚实基础

特征

  1. 一个springboot项目必须有spring-boot-starter-parent依赖作为maven父级工程
  2. 启动类必须有springbootapplication注解
  3. main方法必须有springapplication.run
  4. 以上三点缺一不可

java配置

spring经历了几个版本的更迭,从最初spring1.0时代的所有对象都需要注入到
spring容器,到2.0时代的注解与配置文件的结合(这也是中国开发者喜欢用的方式),到3.0时代的spring提倡用java配置代替xml文件配置,这个过程经历了十几二十年,由于springboot的流行,2.0时代成为过去,传统的配置文件方式不会在springboot项目中看见,比如web.xml,application.xml.springmvc.xml等等,
这是为什么呢,因为springboot全部都帮我们做好了!

我们首先聊一聊如何使用java配置

比如我们以前配置过的数据源DataSource,怎么使用java代码配置呢?

  1. 引入数据源依赖(如阿里的druid)
  2. 创建配置类DataConfig,添加注解@configuration(配置注解,相当于xml文件)
  3. 在该类中创建方法,用于注入到spring容器public DataSource getDS(){
    DataSource ds=new DruidDataSource();
    ds.set***(***);
    ds.set***(***);
    ds.set***(***);
    ds.set***(***);
    return ds;
    }
  4. 不要忘了在该方法上添加注解@bean

以上步骤使用java代码配置取代了xml中的数据源配置

解析:spring扫描到@configuration的注解类视为配置类,将扫描里面的
带有@bean注解的方法,扫描到方法后,解析代码,将方法的返回值
作为创建的对象注入到spring容器,也就是以上的DataSource,
这样就完成了springIOC

这只是最原始最笨的方法,还有很多其它优化方式,这里举几个例子

  1. 创建配置文件db.properties,里面配置驱动,url,username,pwd等
    jdbc.driverclassname=****
    jdbc.url=***
    jdbc.username=***
    jdbc.password=**
  2. 创建配置类 ConfigDataBase,添加注解,指向配置文件@ConfigurationProperties(name=“db.properties”,prefix=“jdbc”)
  3. maven引入lombok依赖
  4. 在新创建的类ConfigDataBase中添加属性,属性名称与db.properties对应
  5. 类名上添加@data注解取代getset,hashcode,tostring等等方法
  6. 在之前的DataConfig类上添加注解@enableConfigurationProperites,
    可以使用属性注入,或者形参注入等方式完成注入,改造之前的方法:
    public DataSource getDS(ConfigDataBase cdb){
    DataSource ds=new DruidDataSource();
    ds.set***(cdb.get***);
    ds.set***(cdb.get***);
    ds.set***(cdb.get***);
    ds.set***(cdb.get***);
    return ds;
    }
    这种方式更加优雅,可以多方共享

springboot默认使用的配置文件是application.properties,但是更优雅的
配置文件是springboot.yml文件,并且yml文件可以支持对象,集合等
更复杂的数据类型,所以本人是更喜欢使用后者来配置,
将db.properties更改为application.yml,将里面的内容做相关
修改,springboot默认可以识别,这时配置类ConfigDataBase不需要了,
直接在DataConfig中的getDS方法上添加注解@enableConfigurationProperties,只要你的application.yml文件中配置的属性与返回类DataSource中的set方法
的方法名一直,那么spring会自动识别,并且帮你完成ioc注入

这,就是优雅的java配置,非常方便

                                                                                                   长城上的蚂蚁
                                                                                                   2020年2月22日
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值