当前位置: 首页 > news >正文

湘西州住房和城乡建设局网站湖南营销网站建设

湘西州住房和城乡建设局网站,湖南营销网站建设,微信商城有哪些第三方平台,深圳高端包装盒设计初识Spring 什么是Spring#xff1f; Spring是一个开源的Java企业级应用程序开发框架#xff0c;由Rod Johnson于2003年创建#xff0c;并在接下来的几年里得到了广泛的发展和应用。它提供了一系列面向对象的编程和配置模型#xff0c;支持开发各种类型的应用程序#x… 初识Spring 什么是Spring Spring是一个开源的Java企业级应用程序开发框架由Rod Johnson于2003年创建并在接下来的几年里得到了广泛的发展和应用。它提供了一系列面向对象的编程和配置模型支持开发各种类型的应用程序包括Web应用、移动应用、消息传递应用、批处理应用等等。 Spring框架是一个轻量级的框架其核心原则是面向接口编程和控制反转IoC。 通过使用Spring框架可以简化应用程序的开发、部署和测试并提高应用程序的可维护性和可扩展性总而言之使用Spring的根本目的就是为了简化Java开发。 一句话概括Spring就是Spring是包含了众多工具方法的IoC容器。 Spring的优点 方便解耦简化开发Spring框架实现了控制反转IoC和依赖注入DI等特性可以将对象的创建和依赖关系交给Spring容器管理从而大大简化了开发过程。AOP编程的支持Spring提供了面向切面编程AOP的支持可以方便地实现对程序进行权限拦截、运行监控等功能。声明式事务的支持Spring的事务管理机制可以通过配置来实现从而实现声明式事务的效果降低了手动编码的复杂性。方便程序的测试Spring对Junit4支持可以通过注解方便地测试Spring程序。方便集成各种优秀框架Spring可以与各种优秀的开源框架无缝集成如Struts、Hibernate、MyBatis等。降低Java EE API的使用难度Spring提供了许多方便的API和工具类来简化Java EE API的使用从而降低了使用难度。 什么是容器 我们说Spring是包含了众多工具方法的IoC容器。那么什么是容器 容器是用来容纳某种物品的装置。在Java中容器就是用来容纳某种对象的装置。 之前我们曾接触到的容器有:线程池、Map、队列、Tomcat...... 什么是IoC IoC的全称为Inversion of Control。也就是控制反转。 IoC是一个面向对象编程的设计原则也是Spring框架的核心思想之一。 IoC的基本思想是将对象的创建和依赖关系的维护交给容器来管理从而使得程序更加松耦合、可维护和可扩展。 举一个例子 如果我们要做一个电脑。我们的基本思路是这样子的 制作一个电脑电脑的运行需要电脑配置配置有软件和硬件配置这里我们只选取了硬件配置。而硬件配置中我们选取了CPU。最终的程序实现代码如下 import javax.security.auth.login.AppConfigurationEntry; import javax.security.auth.login.Configuration;public class NewComputer {//制作一个电脑public static void main(String[] args) {Computer computernew Computer();computer.init();}//电脑对象static class Computer{public void init(){//依赖配置Configuration configurationnew Configuration();configuration.init();}}//配置对象static class Configuration{public void init(){//依赖硬件Hardware hardwarenew Hardware();hardware.init();}}//配置硬件static class Hardware{public void init(){//依赖CPUCpu cpunew Cpu();cpu.init();}}//配置CPUstatic class Cpu{private String model Intel的酷睿core系列;public void init(){System.out.println(CPU型号——model);}} } import javax.security.auth.login.AppConfigurationEntry; import javax.security.auth.login.Configuration;public class NewComputer {//制作一个电脑public static void main(String[] args) {Computer computernew Computer();computer.init();}//电脑对象static class Computer{public void init(){//依赖配置Configuration configurationnew Configuration();configuration.init();}}//配置对象static class Configuration{public void init(){//依赖硬件Hardware hardwarenew Hardware();hardware.init();}}//配置硬件static class Hardware{public void init(){//依赖CPUCpu cpunew Cpu();cpu.init();}}//配置CPUstatic class Cpu{private String model Intel的酷睿core系列;public void init(){System.out.println(CPU型号——model);}} } 上面代码的运行效果如下 那如果这个时候我们定制电脑的顾客不想要这个型号的CPU想换个型号使用。那么这个时候我们需要该的东西就变得很多了。 如下 public class NewComputers {//制作一个电脑public static void main(String[] args) {Computer computernew Computer(AMD的锐龙Ryzen系列);computer.run();}//电脑对象static class Computer{private Configuration configuration;public Computer(String model){configurationnew Configuration(model);}public void run(){//依赖配置configuration.init();}}//配置对象static class Configuration{private Hardware hardware;public Configuration (String model){hardwarenew Hardware(model);}public void init(){//依赖硬件hardware.init();}}//配置硬件static class Hardware{private Cpu cpu;public Hardware (String model){cpunew Cpu(model);}public void init(){//依赖CPUcpu.init();}}//配置CPUstatic class Cpu{private String model;public Cpu(String model){this.modelmodel;}public void init(){System.out.println(CPU型号——model);}} }public class NewComputers {//制作一个电脑public static void main(String[] args) {Computer computernew Computer(AMD的锐龙Ryzen系列);computer.run();}//电脑对象static class Computer{private Configuration configuration;public Computer(String model){configurationnew Configuration(model);}public void run(){//依赖配置configuration.init();}}//配置对象static class Configuration{private Hardware hardware;public Configuration (String model){hardwarenew Hardware(model);}public void init(){//依赖硬件hardware.init();}}//配置硬件static class Hardware{private Cpu cpu;public Hardware (String model){cpunew Cpu(model);}public void init(){//依赖CPUcpu.init();}}//配置CPUstatic class Cpu{private String model;public Cpu(String model){this.modelmodel;}public void init(){System.out.println(CPU型号——model);}} } 不难看出在我们更改底层某个参数后以次向上我们需要更改很多代码。 如何解决这个问题呐 我们只需要把原来由自己创建的下级类改为传递的方式即注入的方式这样就完成了程序的解耦。 程序的解耦是指将程序中各个模块之间的依赖关系降低使得不同的模块相互独立、耦合度低从而达到易于维护、易于修改、易于扩展的目的。 控制反转 我们说Spring的其中一个优点是Spring框架实现了控制反转IoC和依赖注入DI等特性可以将对象的创建和依赖关系交给Spring容器管理从而大大简化了开发过程。 那么什么是控制反转什么是依赖注入 还是上面的代码我们将其创建子类的方式改为注入传递的方式来理解何为控制反转。 public class IocNewComputers {//制作一个电脑public static void main(String[] args) {Cpu cpunew Cpu(AMD的锐龙Ryzen系列);Hardware hardwarenew Hardware(cpu);Configuration configurationnew Configuration(hardware);Computer computernew Computer(configuration);computer.run();}//电脑对象static class Computer{private Configuration configuration;public Computer(Configuration configuration){this.configurationconfiguration;}public void run(){//依赖配置configuration.init();}}//配置对象static class Configuration{private Hardware hardware;public Configuration (Hardware hardware){this.hardwarehardware;}public void init(){//依赖硬件hardware.init();}}//配置硬件static class Hardware{private Cpu cpu;public Hardware (Cpu cpu){this.cpucpu;}public void init(){//依赖CPUcpu.init();}}//配置CPUstatic class Cpu{private String model;public Cpu(String model){this.modelmodel;}public void init(){System.out.println(CPU型号——model);}} }public class IocNewComputers {//制作一个电脑public static void main(String[] args) {Cpu cpunew Cpu(AMD的锐龙Ryzen系列);Hardware hardwarenew Hardware(cpu);Configuration configurationnew Configuration(hardware);Computer computernew Computer(configuration);computer.run();}//电脑对象static class Computer{private Configuration configuration;public Computer(Configuration configuration){this.configurationconfiguration;}public void run(){//依赖配置configuration.init();}}//配置对象static class Configuration{private Hardware hardware;public Configuration (Hardware hardware){this.hardwarehardware;}public void init(){//依赖硬件hardware.init();}}//配置硬件static class Hardware{private Cpu cpu;public Hardware (Cpu cpu){this.cpucpu;}public void init(){//依赖CPUcpu.init();}}//配置CPUstatic class Cpu{private String model;public Cpu(String model){this.modelmodel;}public void init(){System.out.println(CPU型号——model);}} } 这个时候如果我们需要更改CPU的选择只用在main方法里更改参数值就好了。 此时制作电脑的流程就改变了 我们可以看到传统的代码是由Computer来控制并创建子类依次类推。而IoC则是由将下级对象注入到当前对象中下级的控制权此时不在由上级类控制。 传统的Java SE程序设计中我们通过new关键字在对象内部直接创建和控制依赖对象而在IoC设计中我们将对象交给IoC容器来管理和控制IoC容器负责创建、配置和管理bean也就是它管理着bean的生命周期因此控制权在IoC容器中。 DI DI是依赖注入Dependency Injection的缩写。 依赖注入是一种设计模式它可以通过将依赖关系的创建和维护交给外部容器来管理以降低组件之间的耦合度提高代码的可维护性和可扩展性。通常情况下我们使用DI将一个对象的依赖关系注入到另一个对象中而不是在对象内部创建和控制依赖对象。 IoC是一种思想而DI是这种思想的一种具体实现。 Spring家族的主要成员 Spring Framework Spring Framework 是一个开源框架用于创建 Java 应用程序的全栈式企业级应用程序开发的基础设施。它提供了一系列库和工具可以方便地解决 Java 开发中的常见问题例如面向切面编程、IoC控制反转、DI依赖注入和集成 JPA 和 Hibernate 等 ORM 工具。Spring Framework 的目标是让 Java 开发变得更加简单、快速、高效并且完整。 Spring Boot Spring Boot降低了开发生产级Spring应用的门槛。 Spring Boot是一个基于Spring Framework的快速开发框架可以用来快速构建独立的、生产级别的、基yuSpring的应用程序。它采用约定优于配置的方式通过自动配置和准备好的模板将开发人员从繁琐的配置中解放出来使得开发人员可以更加专注于业务逻辑的实现。 Spring Boot提供了丰富的功能和库包括Web应用、安全性、数据访问和集成测试等。它还有很好的可扩展性并且可以轻松地与其他Spring项目例如Spring Cloud集成以支持在云环境中构建和部署应用程序。 Spring Boot提供的起步依赖很好解决了Spring应用的依赖管理困难Spring Boot的另一大亮点是自动配置该功能减少了Spring应用的配置量 Spring Cloud Spring Cloud 是一个开源的、用于构建分布式系统的框架。它基于 Spring Boot提供了一套简单易用的工具可以帮助开发人员快速地构建和部署云原生应用程序并解决云原生应用程序中常见的问题例如注册和发现服务、配置管理、负载均衡、熔断器、智能路由等。Spring Cloud 基于微服务架构提供分布式系统中诸多核心功能组件可以为企业级应用的云原生化提供全方位的支持。 Spring Data Spring Data 是 Spring Framework 的一个子项目它为数据访问提供了一致的编程模型和简化的编码技巧。Spring Data 旨在简化与关系型数据库、NoSQL 数据库、MapReduce 框架和云数据库等不同类型的数据库进行交互的工作。Spring Data 的主要目标是提供一种简单的编程模型以减少数据访问代码的重复性并通过提供通用接口来减少开发人员需要编写的样板代码。 Spring Data 提供了一些常用的技术包括Spring Data JPA、Spring Data MongoDB、Spring Data Redis等。它们都遵循了统一的设计理念和规范并且相互之间可以方便地集成使得开发人员可以轻松地适配不同的数据存储解决方案从而更专注于业务逻辑的实现。
http://www.dnsts.com.cn/news/237821.html

相关文章:

  • 网站域名区别网站建设花都區
  • wordpress建站后厦门工程网站建设
  • 泉州最专业手机网站建设哪家好app公司简介范文大全
  • 临翔区城乡建设局网站建设企业网站的企业
  • 个人网站备案注意事项网页站点规划
  • 找做外墙油漆网站中国建设人才服务信息网是不是假冒网站
  • 行业 专业 网站建设wordpress 速度慢
  • 网站建设是专业培训学校招生方案
  • 建网站 是否 数据库网站建设 中企动力板材生态板
  • 滨州的网站开发杭州网站开发招聘
  • 做剧情网站侵权吗站酷高高手
  • 牛什么网站建设旅游网站开发的国内外现状
  • 仿做网站网络直播平台搭建
  • 自己做的网站怎么放图片企业vi包括哪些内容
  • 怎么验证网站备案密码是否正确前端培训学校
  • 遵义做企业网站html创建站点的步骤
  • 中国建设银行的网站设计青之峰做网站
  • 湖南长沙又检出1例阳性seo和sem
  • 我要浏览国外网站怎么做公司建设一个网站有什么好处
  • 网站建设全网站建设发文章几点发比较合适
  • 谷德设计网站在线装修设计软件免费版
  • 网站建网站建设专业wordpress怎样搭建
  • 网站建设毕业设计摘要325建筑人才网招聘
  • 塑胶加工东莞网站建设技术支持福州网站建设公司中小企业
  • 网站建设管理经验做法网站架构设计师月薪多少
  • 阿里云做网站需要些什么软件国内vps推荐
  • 网站开发需要解决的问题如何制作3d效果图
  • 成都住建厅官方网站如何开发网站平台开发
  • 申请网站做自己的产品wordpress 带水印
  • 百度行业网站怎么做做网站的计划概要