通俗的说一下Spring

                                       通俗的说一下Spring

        Spring它是一个开源的框架,我们通常认为Spring框架它是一个大管家,没错它就是一个大管家,所以说我们在开发当中Spring框架是不可缺少的,它是JavaEE/SE的一站式框架(轻量级的),那什么是轻量级呢?我们在开发中会把服务器端分为三层架构:web层、业务逻辑层、持久层。

        我们来说一下这三层架构:web层也就是spring为我们提供了springMVC这一框架,(后续我们会详细介绍springMVC的);业务逻辑层也就是我们所说的service层,spring提供了Bean管理、IOC以及事务的管理;持久层:spring为我们提供了JDBC的模板(JdbcTemplate)他可以很好的与ORM框架进行整合,比如说:Hibernate,Mybatis,的持久层的框架;

        我们来解说一下spring的有点:

        ①方便解耦,简化开发

                spring就是一个大工厂,可以将所有的对象创建和依赖关系维护都交给spring进行管理

        ②支持AOP的开发

                spring提供了面向切面编程,可以很方便的对程序进行拦截,运行监控的功能;

        ③声明式事务的支持  

                只需要配置就可以完成对事务的管理,而无序手动的编程

        ④方便对程序的测试

                spring对Junit4支持,可以通过注解@Test测试spring的程序

        ⑤方便集成各种优秀的框架

                spring不排斥各种优秀的框架,其中内部提供了对各种优秀框架的支持(Struts2、hibernate,Mybatis)的直接的支持


    OK,以上就是我们所说的spring的优点

---------------------------------------------------------------------------------------------------------------------------------通常我们说到spring就会知道:spring的IOC和AOP还有DI

        我们来说一下springIOC的底层的实现原理,IOC就是我们所说的(控制反转)那么什么是控制控制反转呢?简单的理解就是反射机制,在传统的方式开发的演变过程

        起初我们采用的是UserService service = new UserService();面向对象的编程  -->我们会采用new一个对象的方式来对service层进行连接的。

         其次我们采用的是UserService service = new UserServiceImpl();面向借口的编程 -->我们会采用new一个接口的方式来对service层进行连接的。我们在开发中都会采用OCP原则(open-close原则)既是对程序的扩展是open的,对修改程序代码是close的,尽量做到不修改程序的代码,实现对程序的扩展

          然后我们采用了工厂设计模式-->用工程设计模式对spring的IOC进行了实现

-->//创建spring的工厂

ApplicationContext applicationContext = new ClassPathXMLApplicationContext(configLocation:"applicationContext.xml");

//获得工厂的类

UserService userService = (UserService) applicationContext.getBean("XXX")

                    XXX值得是Xml中配置的ID属性

          目前大多数情况下都使用的是:工厂+反射+配置文件的方式进行IOC的实现

           随着技术的发展spring提供了springboot让我们放弃了对配置文件的设置;减少了开发中对配置文件的设置

---------------------------------------------------------------------------------------------------------------------------

            spring的Bean管理(Xml)  Xml中的Bean

            ①采用无参构造:<Bean id='Bean1' class='com.fyn.ioc.Bean1'>

            ②静态工厂实例化:<Bean id='Bean2' class='com.fyn.ioc.Bean2' factory-method='createBean2'>

            ③实例工厂:<Bean id='Bean3' class='com.fyn.ioc.Bean3'>

                                <Bean id='Bean3' factory-bean='bean3Factory' factory-method='createBean3'>

            Bean标签中的配置   

                id和name ,一般情况下,装配一个bean时,通过指定的id属性作为bean的名称,id属性在IOC容器中必须是唯一的,如果bean的名称有特殊的符号,我们就需要使用name属性了

                class用于设置一个类的全路径的名称,主要作用是IOC容器生成类的实例。

----------------------------------------------------------------------------------------------------------------------------

未经本人允许不得转载

            如有不理解的+Q1452256520微笑

                               

### Spring Cloud 的入门级通俗讲解 Spring Cloud 是一组基于 Spring Framework 的开源项目,旨在帮助开发者快速构建和管理分布式系统中的微服务架构[^2]。它提供了许多工具和框架来解决微服务开发过程中常见的挑战。 #### 微服务的核心概念 微服务是一种软件架构风格,其中单个应用由多个小型的服务组成,这些服务独立运行并可以通过轻量级机制通信(通常是 HTTP API)。每个服务专注于完成特定的功能模块,并且可以独立部署、扩展和维护。 #### Spring Cloud 的主要功能 以下是 Spring Cloud 提供的一些关键特性: 1. **服务注册与发现** 使用 Eureka 或 Consul 等组件实现服务的动态注册和发现。这使得微服务能够自动感知彼此的存在而无需硬编码地址信息。 2. **负载均衡** Ribbon 是一种客户端负载均衡器,它可以配合 Feign 和其他组件一起工作,在请求目标服务时分摊流量压力。 3. **断路器模式** Hystrix 实现了断路器模式,当某个远程调用失败达到一定次数后会触发熔断机制,从而防止雪崩效应影响整个系统稳定性。 4. **API网关** Spring Cloud Gateway 作为统一入口处理外部访问请求并将它们路由到内部不同微服务上[^1]。它还支持路径匹配、过滤等功能以增强灵活性。 5. **配置中心** 配置文件通常会被抽取出来放到 Config Server 中进行集中化管理,这样即使修改参数也不需要重启所有实例就能生效[^4]。 6. **消息总线** 利用 Kafka 或 RabbitMQ 来建立事件驱动型架构下的实时通讯桥梁,促进异步交互模型下各部分之间的协作效率提升。 7. **安全认证授权** OAuth2 协议被广泛应用于保护资源免受未授权用户的侵害;通过集成 Zuul/Netflix OSS 可进一步加强边界防护能力。 8. **追踪链路分析** Zipkin 或 Sleuth 工具可用于跟踪跨多层调用链条上的性能瓶颈所在位置以便优化调整策略方向明确。 9. **脚手架搭建快捷方式** 借助于 Spring Boot 技术栈所提供的强大生态体系优势,初学者能够在短时间内迅速建立起具备基本功能雏形的应用程序原型来进行实验验证学习过程更加顺畅高效[^3]。 ```java @SpringBootApplication @EnableDiscoveryClient public class MyMicroserviceApplication { public static void main(String[] args) { SpringApplication.run(MyMicroserviceApplication.class, args); } } ``` 以上代码片段展示了如何创建一个简单Spring Boot 应用程序,并启用服务发现功能。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值