`
y806839048
  • 浏览: 1120592 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

springboot原理的理解

阅读更多

 

 

基础服务层用springclound的思想是要用controller作为入口,用dubbo的思想一般是server直接被调用   这种都可以实现分布式

单纯的springboot可以实现ha(用redissession共享),但是分布式的话积就类似http调用了(控制层和服务层在一起),和springcloud比没有注册发现,

(自己写的代码,框架中的源码都如此)先校验有没有自定义了同名的bean,有自定义就用自定义的,没有就用框架默认的

start 引入的是自动配置修改一些配置文件即可(主类中开启),===否则需要自定义配置就用@Configuration

 

配置中自定义的bean,先定义好,然后@bean new好,@Bean的东西会同名注入框架,也可手动set

 

 

shiro使用redis做session管理就像将spring的缓存实现类配置成redis一样,sessiondao可以自己写,也可用shiro-redis.jar中现成的(bank-web)

 

 

用xml:

1,ImportResource(propertyresource加载属性文件)

2,转化成对象

3,类似框架中转化

Resource[] mappers = resourceResolver.getResources(mapperLocation);

                    resources.addAll(Arrays.asList(mappers));

 

 

mybatis.mapper-locations=classpath:mapper/*.xml

 

 

核心流程的对应配置:

 

@SpringBootApplication

@EnableTransactionManagement

@MapperScan(basePackages = "com.houbank.bank.web.mapper")

public class BankWebApplication extends SpringBootServletInitializer{

 

}

 

 

 

 

springboot相当于框架启动入口,所有的配置集成这之后完成

@springbootapplication:

   @springbootconfiguration---扫描所有的配置类

   @enabloeautoconfiguration---自动装配所有的start框架中的spring.factories框架

   @componentscan     ---扫描注解的范围

有上述就配置成功了所有的框架集成---这些就主导了springboot的主要启动流程,其他没有的例如开启事物,扫描等需要在入口另加注解  @EnableTransactionManagement  @MapperScan(basePackages = "com.houbank.bank.web.mapper")

 

 

 @EnableTransactionManagement  @MapperScan  等类似配置主要是配置的延展(比自定义配置更自动只要打开配置,不要重头开始定义配置),和修改(修改一存在的容器中的值)

 

@import

   @Import注解就是之前xml配置中的import标签,可以用于依赖第三方包中bean的配置和加载在4.2之前只支持导入配置类

   在4.2,@Import注解支持导入普通的java类,并将其声明成一个bean(直接实例化放在容器中)

 

@EnableTransactionManagement  这种方式的开启过程其实就是@importSelrctor 框架的解析器ConfigurationClassParser遇到这个会解析成配置类

利用其selectImports方法导入里面指定类的bean,后可以在框架容器中使用,所以@importSelrctor功能类似@import  即@EnableTransactionManagement也就是引入相应功能的配置

 

 

@MapperScan(basePackages = "com.houbank.bank.web.mapper") ---》 @Import(MapperScannerRegistrar.class)  注册到相应的已有的上下文,达到配置的重修改

 

 

 ======

 

 

springboot

1,主类

2,配置类

3,配之类使用的基础类----一般没有ioc注解,可以有di注解,配之类用@bean

4,普通的controller,service,dao层

 

2-3就是补充1主类中的扫描自定义配置部分

 

用于配置的类我们可能不会用@component,@service,@controller,@respostity   会在

@configuration类中 new 然后@bean到容器中,但是这个类可以有@resource,@autowire等注入标签,编译的时候不会出错,在使用的时候有@bean使得进入

spring的容器所以可以使用

 

 

 

 

 

public class MyShiroRealm extends AuthorizingRealm {

 

    @Resource

    private UserService userService;

 

    @Resource

    private ResourcesService resourcesService;

}

 

@Configuration

public class ShiroConfig {

   @Bean

    public MyShiroRealm myShiroRealm(){

        MyShiroRealm myShiroRealm = new MyShiroRealm();

        myShiroRealm.setCredentialsMatcher(hashedCredentialsMatcher());

        return myShiroRealm;

    }

    }

 

 

 

 

 

 

参看:

https://blog.csdn.net/m0_37444820/article/details/81044382

http://www.cnblogs.com/niechen/p/9262452.html

 

分享到:
评论

相关推荐

    springBoot原理&流程

    SpringBoot原理与流程详解 SpringBoot作为现代Java应用开发的首选框架,因其简化配置、快速启动和集成众多功能的优势,已经成为了业界的标准。本篇文章将深入探讨SpringBoot的核心原理和启动流程,帮助开发者理解其...

    Java进阶SpringBoot原理深入及源码剖析共18页

    《Java进阶SpringBoot原理深入及源码剖析》是一份深度探讨Java开发中SpringBoot框架核心原理和技术细节的教程资料。这份18页的PDF文档,涵盖了SpringBoot的基础概念、核心特性以及源码分析,旨在帮助Java开发者...

    springboot基本使用和内部原理

    SpringBoot是Spring框架的一种简化和快速开发方式,它旨在简化Spring应用的初始搭建以及开发...通过对这些知识点的深入理解和实践,你可以更好地掌握SpringBoot的基本使用和内部原理,从而在开发过程中更加得心应手。

    01.SpringBoot自动配置原理.pdf

    SpringBoot自动配置原理 SpringBoot自动配置原理是指SpringBoot框架中...该机制基于@EnableAutoConfiguration注解和自动配置类的实现,通过自动配置流程图,开发者可以更好地理解SpringBoot自动配置原理的实现机制。

    SpringBoot深入理解

    ### SpringBoot深入理解 #### 一、SpringBoot与传统项目的对比 ##### 1.1 传统项目的挑战 在传统项目中,尤其是使用SSM(Spring + SpringMVC + MyBatis)框架时,开发者需要面对复杂的配置文件管理、依赖冲突处理...

    SpringBoot原理篇-黑马程序员学习笔记

    在深入理解Spring Boot的原理之前,我们先来了解一下Spring Boot的核心理念。Spring Boot旨在简化Spring应用的初始搭建以及开发过程,它通过自动配置、起步依赖和命令行界面等特性,使开发者能够快速启动和运行项目...

    Spring整合Mybatis与SpringBoot整合Mybatis原理分析

    **Spring整合Mybatis...通过上述内容,我们可以深入理解Spring整合Mybatis以及Spring Boot整合Mybatis的原理,为实际开发提供坚实的理论基础。同时,提供的SSM-shop项目可以作为实践操作的模板,帮助开发者快速上手。

    SpringBoot原理深入及源码剖析开源架构源码2021.pdf

    Spring Boot是基于Spring框架的一个开源项目,其主要目的是简化Spring应用的初始...对于开发者而言,深入理解Spring Boot的原理有助于提升编程效率、优化应用性能,并且能够更好地应对在实际开发过程中遇到的各种问题。

    SpringBoot启动配置原理_SpringBoot自定义starters.zip

    这个压缩包文件 "SpringBoot启动配置原理_SpringBoot自定义starters.zip" 显然是关于理解 Spring Boot 启动配置以及如何自定义 Starters 的教程资料。 **Spring Boot 启动配置原理** Spring Boot 的核心之一是其...

    SpringBoot基础篇--黑马

    * 理解SpringBoot整合第三方技术的原理 * 实现自定义开发整合第三方技术的组件 Spring Boot基础篇学习前置知识: * Java基础语法 * Spring与SpringMVC * Mybatis与Mybatis-Plus * 数据库MySQL * 服务器 * maven * ...

    springBoot自动装配原理以及starter技术.pdf

    在Spring Boot中,自动装配是其核心特性之一,它极大地简化了配置,使得开发者能够快速构建应用程序。本文将深入解析Spring Boot自动装配的原理,并探讨starter...理解这些原理对于优化和调试Spring Boot应用至关重要。

    SpringBoot实战_springboot实战_

    《SpringBoot实战》这本书主要涵盖了SpringBoot框架的深入理解和实践应用。SpringBoot是Spring生态体系中的一个重要组成部分,它简化了Spring应用的初始搭建以及开发过程,使得开发者可以更快速地构建高质量的应用。...

    SpringBoot源码例子学习

    通过下载并参考`MySpringBootTest`这个项目,我们可以深入理解SpringBoot的工作原理,以及如何将这些知识应用到实际开发中。 首先,我们要了解SpringBoot的核心特性,它包括自动配置、起步依赖、内嵌式Web服务器等...

    springboot之启动原理解析Java系列2021.pdf

    SpringBoot启动原理解析 SpringBoot是一种流行的基于Java的框架,用于构建快速、可靠和生产级别的应用程序。...理解SpringBoot的启动原理可以帮助开发人员更好地使用SpringBoot,并构建更加高效和可靠的应用程序。

    springboot

    源码分析是深入理解框架工作原理的关键步骤。通过研究 `SpringBoot-SourceCode`,我们可以探索以下几个核心知识点: 1. **自动配置(Auto Configuration)**:SpringBoot 的自动配置是基于条件注解(Conditional ...

    Springboot学习教程,Springboot精讲42课

    2. **SpringBoot核心**:深入理解自动配置原理,学习`@SpringBootApplication`和`@ComponentScan`等关键注解的作用。 3. **Web开发**:使用SpringBoot构建RESTful API,学习Thymeleaf、FreeMarker或Velocity等模板...

    SpringBoot深入理解之内置web容器及配置的总结

    今天,我们将深入探讨SpringBoot中的内置web容器及配置,了解其原理和实现机制。 内置web容器 SpringBoot中使用的内置web容器是Tomcat、Jetty、Undertow三种容器之一,用于启动和部署web应用程序。这些容器都可以...

    第三节-springboot源码解析-王炸篇.pdf

    通过源码分析,开发者可以更好地理解Spring Boot的自动装配、启动流程以及如何自定义启动器。Spring Boot的自动装配原理涉及到Spring Boot的核心特性,它简化了基于Spring的应用开发,通过自动配置减少了大量的配置...

    springboot进阶.rar

    理解自动配置的工作原理,如如何通过`@Conditional`注解控制Bean的创建条件,以及如何自定义自动配置类,是提升SpringBoot应用开发能力的关键。 其次,SpringBoot的启动器(Starters)使得引入依赖变得异常简单。每...

Global site tag (gtag.js) - Google Analytics