Spring学习(2)

Part 1 Overview of Spring Framework

闲暇时间看看Spring的文档,一边看一边记录翻译的。英语不好……

依赖管理和命名规则

依赖管理和依赖注入是不同的事情。为了把这些好的特性(例如:依赖注入)添加到你的应用中,你需要装配所有需要的库(jar 包)并且尽可能的在编译是添加他们到你的Classpath路径下。这些依赖不是虚拟的组件,他们是被注入的。但是物理资源往往在文件系统里面。依赖管理进程涉及:找出这些资源,存储他们和把这些资源添加到classpath路径下。依赖可以是直接的( 我的应用依赖于运行的sping),或者不直接的(我的应用依赖于 commons-dbcp 它依赖于 commons-pool)。间接依赖我们也称作“传递性”,这些依赖关系是很难找到并难于管理。

如果你正在使Spring你不得不拷贝一部分jar包组成Spring的你需要的部分。为了使这些更容易,Spring被打包成独立的包集合并尽可能多的分布依赖关系,例如: 如果你不想要写一个web应用你不需要Spring的web-module。为了应用spring的库在这个引导中我们用简略的命名规则 spring-* 或者 spring-.jar,这里的 代表省略的模块名称(例如:spring-core,spring-webmvc,spring-jms,等等。)。 实际上我们使用的jar文件一帮的模块名称还要加上版本信息(例如: spring-core-4.3.8.RELEASE.jar)。

每一个Spring框架的版本都将发布到下面的地点:

  • Maven 中央仓库,这是Maven默认查询的仓库,不需要使用其它特殊的配置了。许多Spring依赖的普通的库可以从中心仓库获取,Spring社区大部分选择Maven依赖管理,这样对他们也方便。 在这里的Jar包是这样的形式 spring-*-< version >.jar,maven的组名称是 org.springframework。
  • 在Spring专用公共maven仓库。添加最终的GA版本,这种仓储也是发展的快照和里程碑。 jar包的名称和Maven 中央仓库的一样, 这也是一个有用的地方为了得到Spring发展版本和其他依赖Maven 中央仓库的使用。这样存储也包含一个分布压缩文件,它包含了所有Spring的jar文件被绑定在一起的使其更容易下载。

所以第一件事情你需要决定怎样管理你的依赖: 我们通常推荐使用一个自动的系统例如: Maven ,Gradle or lvy,但是你也可以手动完成它自己下载你需要的所有Jar包。

下面 你将要找到Spring工程名称的清单。更多的关于每一个包的描述,查看2.2部分“Framework Modules”:

表2.1 Spring框架 工程

GroupIdArtifactIDDescription
org.springframeworkspring-aopProxy-based AOP support
org.springframeworkspring-aspectsAspectJ based aspects
org.springframeworkspring-beansBeans support, including Groovy
org.springframeworkspring-contextApplication context runtime,including scheduling and remoting abstractions

···更多的 就不列出来了。

Spring 的依赖和依赖与Spring
虽然Spring提供了对于大型企业和其他外部工具的整合和支持,它有意的保持了它的强制的一个最小化依赖:你不应该寻找并下载大量的jar库为了使用简单的Spring例子。对于基础的依赖注入,这里只有一个是强制的外部依赖,并且这是为了日志(了解更多信息,看关于日志选项的描述)。

接下来我们要描述基础的步骤一个依赖于Spring应用的必须配置,首先是Maven 然后是Gradle最后是使用lvy。在这些所有的例子中,如果有任何不清楚的,参考你依赖管理工具的文档,或者看一些简单的列子code-spring它自己使用Gradle管理依赖,当他编译的时候,我的例子大多数采用Gradle或者Maven。

Maven 依赖管理
如果你使用maven作为依赖管理你甚至不需要明确的日志依赖声明。 例如: 为了创建一个应用上下文并且在应用中使用依赖注入的特性, 你的依赖关系将像这样 :

< dependencies>
   < dependency>
     < groupId>org.springframework < / groupId>
     < artifactId>spring-context < / artifactId>
     < version>4.3.8.RELEASE< /version>
     < scope>runtime< / scope>
   < / dependency>
< / dependencies>

就是这样,注意 scope 可以被声明成 runtime 如果你不需要编译Spring API,这是一个基本的依赖注入的经典的例子。
上面的列子适用于Maven的中央仓库。为了使用Spring的仓库(例如: 为了里程碑或开发快照),你需要配置特使的存储位置。
For Full release:

< repositories>
  < repository>
    < id>io.spring.repo.maven.release< /id>
    < url>http://repo.spring.io/release/ < /url>
    < snapshots>< enabled>false< /enabled>< /snapshots>
  < /repository>
< /repositorie>

For milestones:

< repositories>
  < repository>
    < id>io.spring.repo.maven.milestone < /id>
    < url>http://repo.spring.io/milestone/ < /url>
    < snapshots>< enabled>false< /enabled>< /snapshots>
  < /repository>
< /repositories>

And for snapshots:

< repositories>
  < repository>
    < id>io.spring.repo.maven.snapshot< /id>
    < url>http://repo.spring.io/snapshot/ < /url>
    < snapshots>< enabled>true< /enabled>< /snapshots>
  < /repository>
< /repositories>

Maven “Bill Of Materials” Dependency
当时用Maven的时候,意外的混合使用了不同版本的spring jar库是可能的。例如:你可能找到第三方库,另一个Spring工程,依赖传递到一个交老的版本。 如果你忘记了自己明确地声明了一个直接依赖,所有不期望的问题可能引发。
为了克服这类的问题Maven支持“bill of materials”(BOM) 依赖的概念。你可以导入 spring-framework-bom 在你的dependencyManagement部分可以确保所有的Spring依赖版本是一样的(包括直接依赖和间接依赖)。

< dependencyManagement>
  < dependencies>
    < dependency>
      < groupId>org.springframework< /groupId>
      < artifactId>spring-framework-bom< /artifactId>
      < version>4.3.8.RELEASE< /version>
      < type>pom< /type>
      < scope>import< /scope>
    < /dependency>
  < /dependencies>
< /dependencyManagement>

添加一个BOM的好处是你不在需要特殊的版本属性,当依赖于Sping 框架的组件

< dependencies>
  < dependency>
    < groupId>org.springframework< /groupId>
    < artifactId>spring-context< /artifactId>
  < /dependency>
  < dependency>
    < groupId>org.springframework< /groupId>
    < artifactId>spring-web< /artifactId>
  < /dependency>
< dependencies>

Gradle 依赖管理

为了在Gradle创立的系统中使用Spring仓库。包括恰当的URL在仓库部分:

repositories {
  mavenCentral()
  // and optionally…
  maven { url “http://repo.spring.io/release” }
}
你可以恰当的改变仓库URL从/release 到/milestone 或者/snapshot。一旦仓库被配置,你可以用Gradle普通的方式声明依赖:
dependencies {
  compile(“org.springframework:spring-context:4.3.8.RELEASE”)
  testCompile(“org.springframework:spring-test:4.3.8.RELEASE”)
}

Ivy 依赖管理
如果你更喜欢使用lvy来管理依赖关系,这里有类似的配置选项。
为了配置lvy指向Spring 仓库添加下面的冲突解析程序到你的ivysetting.xml:

< resolvers>
  < ibiblio name=”io.spring.repo.maven.release” m2compatible=”true”
  root=”http://repo.spring.io/release/”/>
< /resolvers>

你适当的可以改变rootURL从/release/到/milestone/或者/snapshot/。一旦配置了, 你可以添加用普通的方式添加依赖。例如( 在ivy.xml文件中):

< dependency org=”org.springframework”
name=”spring-core” rev=”4.3.8.RELEASE” conf=”compile->runtime”/>



译者注:Distribution Zip Files 这个我确实不知道咋翻译,感觉咋翻译都是怪怪的。

分散的Zip文件
尽管使用创建一个系统它支持依赖管理系统获得spring框架式推荐的方式,但是仍然可以下载一个分散的zip文件。
分散的zips文件被发布到spring的中央仓库(这只是为了我们方便,下载他们你不需要Maven或者其他的编译系统)。
为了下载一个分散的zip,打开网页浏览器键入http://repo.spring.io/release/org/springframework/spring 然后选择一个你想要版本的合适子文件夹。分散的zip文件以 -dist.zip结尾,例如 : spring-framework-{spring-version}-RELEASE-dist.zip。 分散的也发布了milestones和snapshots。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 很高兴听到您对Spring Boot 2的学习感兴趣。Spring Boot是一个基于Spring框架的快速开发应用程序的工具,它提供了一种简单的方式来创建和配置Spring应用程序。以下是一些学习Spring Boot 2的笔记: 1. Spring Boot 2的新特性:Spring Boot 2相对于Spring Boot 1.x版本来说,有许多新的特性和改进。例如,它支持Java 9和10,提供了更好的响应式编程支持,以及更好的安全性和监控功能。 2. Spring Boot 2的核心组件:Spring Boot 2的核心组件包括Spring Framework、Spring MVC、Spring Data和Spring Security等。这些组件提供了一系列的功能和工具,使得开发人员可以更加轻松地构建和管理应用程序。 3. Spring Boot 2的配置:Spring Boot 2的配置非常简单,它提供了一种基于注解的方式来配置应用程序。开发人员可以使用@Configuration和@Bean注解来定义配置类和Bean。 4. Spring Boot 2的启动器:Spring Boot 2提供了一系列的启动器,这些启动器可以帮助开发人员快速地集成各种常用的框架和库,例如Spring Data JPA、Spring Security、Thymeleaf等。 5. Spring Boot 2的测试:Spring Boot 2提供了一系列的测试工具,例如Spring Boot Test、Mockito、JUnit等。这些工具可以帮助开发人员编写高质量的单元测试和集成测试。 希望这些笔记对您学习Spring Boot 2有所帮助。如果您有任何问题或疑问,请随时联系我。 ### 回答2: Spring Boot 是一个非常流行的开源框架,它的目的是使 Spring 应用程序的开发过程更加简单、快速和高效。Spring Boot 2 是 Spring Boot 框架的第二个版本,已经成为了当今业界最流行的 Java 开发框架之一。 Spring Boot 2 的新特性: 1. 支持 JDK 9。Spring Boot 2 已经支持 JDK 9 所带来的新特性和功能。 2. 基于 Reactive Streams 的编程模型。Spring Boot 2 增加了对 Reactive Streams 的支持,可以开发响应式应用程序,从而提高了系统的吞吐量和性能。 3. 异步服务器支持。Spring Boot 2 已经支持多种异步服务器,包括 Netty、Undertow 和 Tomcat。 4. 更全面的 Actuator 组件。Actuator 是 Spring Boot 的监控和管理组件,Spring Boot 2 在 Actuator 组件上增加了更多的指标、健康检查和应用程序信息。 5. 更好的自定义配置。Spring Boot 2 简化了自定义配置的流程,使得用户可以更快速地配置应用程序。 学习 Spring Boot 2 的步骤如下: 1. 掌握 Spring 基础知识。学习 Spring Boot 2 前需要掌握 Spring MVC、Spring Data 等相关的知识。 2. 下载安装 Spring Boot。Spring Boot 2 可以在官网上下载。 3. 学习 Spring Boot 核心组件。包括 Spring IoC、Spring AOP、Spring MVC 等核心组件。 4. 开发一个 Spring Boot 应用程序。可以从一个简单的 Hello World 开始,逐渐增加功能,学习和理解 Spring Boot 的各种特性和功能。 5. 掌握 Spring Boot 的自动配置。Spring Boot 的自动配置可以大大减少开发人员的工作量,学习和掌握自动配置非常重要。 总之,学习 Spring Boot 2 需要不断地实践和探索,只有通过实际的开发经验才能真正掌握和学会这个框架。 ### 回答3: Spring Boot是一款基于Spring框架的快速应用开发框架。在应用开发的过程中,Spring Boot可以自动配置一个相对完整的Spring应用程序,从而大大减少了开发者的工作量,提高了开发效率。显然,它的学习是很有必要的。 Spring Boot 2.x版本相比于1.x版本在很多方面都进行了升级和改进。在学习的过程中,需要关注的重点在以下几点: 1. 新建Spring Boot项目 Spring Boot提供了Spring Initializr来快速创建新的Spring Boot项目。在构建项目的过程中,我们可以自定义项目的基本信息、项目类型、依赖关系等,可以根据需求灵活选择。 2. Spring Boot自动配置 Spring Boot借助于自动配置功能,可以为开发者免去大量的配置工作。Spring Boot把一些常用的配置提取为Starter,开发者只需要引入这些Starter即可实现自动配置,大大降低了开发成本。 3. Spring Boot集成 Spring Boot集成了众多流行的框架,如MyBatis、Hibernate、JPA、Thymeleaf等,只需要简单的配置就可以实现对这些框架的集成,使得在开发中更加方便。 4. Spring Boot监控管理 Spring Boot通过Actuator提供了一系列配置和管理服务,可以实现对Spring Boot应用程序的监控和管理。开发者可以通过这些服务来监控应用程序的运行状态、访问量、资源使用情况等。 5. Spring Boot测试 Spring Boot天生适合进行单元测试和集成测试,可以使用JUnit、Mockito、Spring Test等框架进行测试。同样可以利用Spring Boot提供的Test Starter进行自动配置,减少测试的开发成本。 以上就是Spring Boot 2的一些学习笔记,它的结构简洁,代码清晰,便于开发者使用。无疑,Spring Boot 2是一个非常适合作为开发者日常工作的框架。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值