数据服务_SpringBoot读取Hbase数据SpringBoot启动流程
主要分为三个部分,
第⼀部分进⾏SpringApplication的初始化模块,配置⼀些基本的环境变量、资源、构造器、,
第⼆部分实现了应⽤具体的启动⽅案,包括启动流程的监听模块、加载配置环境模块、及核⼼的创建上下⽂环境模块,
第三部分是⾃动化配置模块,该模块作为springboot⾃动配置核⼼
主要创建了配置环境(environment)、事件监听(listeners)、应⽤上下⽂(applicationContext),并基于以上条件,
在容器中开始实例化需要的Bean,⾄此,通过SpringBoot启动的程序已经构造完成
Spring中层级
model 层即数据库实体层,也被称为 entity 层 /pojo层
⼀般数据库⼀张表对应⼀个实体类,类属性同表字段⼀⼀对应
满⾜dao层的数据封装需求,所创建的实体类;
dao 层即数据持久层,也被称为mapper层。
dao层的作⽤为访问数据库,向数据库发送sql语句,完成数据的增删改查任务。
service 层调⽤dao层接⼝,
接收dao层返回的数据,完成项⽬的基本功能设计
service:业务层(接⼝),多态的体现;
service.impl :业务层的实现类。
controller 层负责前后端交互,
接受前端请求,调⽤service层,接收service层返回的数据,最后返回具体的页⾯和数据到客户端
Spring 注解
spring可以配置各个层的bean组件(bean)并且维护各个bean之间的关系
Ioc(控制反转)和AOP(⾯向切⾯编程)为内核
@Controller 只是定义了⼀个控制器类,⽽使⽤ @RequestMapping 注解的⽅法才是处理请求的处理器
@Service()  此注注解属于业务逻辑层
@Mapper和@Repository是常⽤的两个注解,两者都是⽤在dao上
注解本质上就是⼀个类,开发中我们可以使⽤注解取代 xml配置⽂件。
@component是spring中的⼀个注解,它的作⽤就是实现bean的注⼊
web开发,提供3个@Component注解衍⽣注解(功能⼀样)取代
@Repository(“名称”):dao层
@Service(“名称”):service层
@Controller(“名称”):web层
@Autowired:⾃动根据类型注⼊
@Qualifier(“名称”):指定⾃动注⼊的id名称
spring保证如果A依赖B(如beanA中有@Autowired B的变量),那么B将先于A被加载
可以在bean A上使⽤@DependsOn注解,告诉容器bean B应该先被初始化
⾸先要了解depends-on或@DependsOn作⽤,是⽤来表⽰⼀个bean A的实例化依赖另⼀个bean B的实例化,
但是A并不需要持有⼀个B的对象,如果需要的话就不⽤depends-on,直接⽤依赖注⼊就可以了或者ref标签。
@DependsOn⽤法
1:直接或者间接标注在带有@Component注解的类上⾯;
2:直接或者间接标注在带有@Bean 注解的⽅法上⾯;
spring容器载⼊bean顺序是不确定的,spring框架没有约定特定顺序逻辑规范,
可以在bean A上使⽤@DependsOn注解,告诉容器bean B应该先被初始化
要⼿动获取spring中的bean对象,这时就需要通过 ApplicationContext
直接注⼊(Autowired)
构造器⽅法注⼊
⼿动构建类实现接⼝ @Component
springboot aoppublic class SpringContextHolder implements ApplicationContextAware
当⼀个类实现了这个接⼝(ApplicationContextAware)之后,这个类就可以⽅便获得ApplicationContext中的所有bean。
换句话说,就是这个类可以直接获取spring配置⽂件中,所有有引⽤到的bean对象。
Hbase
1.NoSuchColumnFamilyException
maven管理的依赖,直接修改maven依赖中hbase的版本就可以了
半是由于Hbase client的版本与集中的Hbase版本不⼀⾄造成
2.
o.s.web.servlet.DispatcherServlet      Completed initialization in 6 ms
org.apache.hadoop.hbase.security.AccessDeniedException: org.apache.hadoop.hbase.security.AccessDeniedException:
Insufficient permissions for user 'aa' (table=dmin:test_result, action=READ)
//设置当前window/linux下⽤户为HBase可访问⽤户
System.setProperty("HADOOP_USER_NAME", "bb");
System.setProperty("HADOOP_GROUP_NAME", "bb");
参考:
SpringBoot中注⼊ApplicationContext对象的三种⽅式 blog.csdn/Abysscarry/article/details/80490624

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。