spring相关jar包简介
SpringBootjava-jar命令行启动原理解析

SpringBootjava-jar命令⾏启动原理解析在spring boot⾥,很吸引⼈的⼀个特性是可以直接把应⽤打包成为⼀个jar/war,然后这个jar/war是可以直接启动的,⽽不需要另外配置⼀个Web Server。
那么spring boot如何启动的呢?今天我们就来⼀起探究⼀下它的原理。
⾸先我们来创建⼀个基本的spring boot⼯程来帮助我们分析,本次spring boot版本为 2.2.5.RELEASE。
// SpringBootDemo.java@SpringBootApplicationpublic class SpringBootDemo {public static void main(String[] args) {SpringApplication.run(SpringBootDemo.class);}}下⾯是pom依赖:<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies><build><finalName>springboot-demo</finalName><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>创建完⼯程后,执⾏maven的打包命令,会⽣成两个jar⽂件:springboot-demo.jarspringboot-demo.jar.original其中springboot-demo.jar.original是默认的maven-jar-plugin⽣成的包。
java开发常用jar包

java开发常用jar包mail.jar与activation.jar里面包含了activation.jar和mail.jar两个包.通过里面的类的调用便可以达到发送电子邮件的目的commons-beanutils.jarApache Commons包中的一个,包含了一些Bean工具类类。
必须使用的jar包。
commons-collections.jarApache Commons包中的一个,包含了一些Apache开发的集合类,功能比java.util.*强大commons-lang.jarApache Commons包中的一个,包含了一些数据类型工具类,是ng.*的扩展。
必须使用的jar包。
commons-logging.jar:Apache Commons包中的一个,包含日志功能commons-io.jarApache Commons包中的一个,java.io.*的扩展,输入输出,支持文件上传commons-fileupload.jarApache Commons包中的一个,是一个通过Http接收上传的文件并处理结果文件的库dom4j-1.4.jar 和jaxen-1.1.1.jar是一个Java的XML API,类似于jdom,用来读写XML文件的。
Hibernate使用dom4j解析XML配置文件和XML映射元文件。
必需的。
ehcache-1.2.jarHibernate可以使用不同cache缓存工具作为二级缓存。
EHCache是缺省的cache缓存工具。
如果没有其它的可选缓存工具,则为必需的。
hibernate3.jarhibernate3的核心类库。
itext.jar是用于生成PDF文档的一个java类库。
通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。
iTextAsian.jaritext中关于亚洲编码的类库,在这里用于中文字体的输入。
SpringBoot的jar包如何启动的实现

SpringBoot的jar包如何启动的实现⽬录⼀、简介⼆、jar包的内部结构三、加载过程1.使⽤到的⼀些类2.过程分析四、总结⼀、简介使⽤过SprongBoot打过jar包的都应该知道,⽬标⽂件⼀般都会⽣成两个⽂件,⼀个是以.jar的包,⼀个是.jar.original⽂件。
那么使⽤SpringBoot会打出两个包,⽽.jar.original的作⽤是什么呢?还有就是java -jar是如何将⼀个SpringBoot项⽬启动,之间都进⾏了那些的操作?其实.jar.original是maven在SpringBoot重新打包之前的原始jar包,内部只包含了项⽬的⽤户类,不包含其他的依赖jar包,⽣成之后,SpringBoot重新打包之后,最后⽣成.jar包,内部包含了原始jar包以及其他的引⽤依赖。
以下提及的jar包都是SpringBoot⼆次加⼯打的包。
⼆、jar包的内部结构SpringBoot打出的jar包,可以直接通过解压的⽅式查看内部的构造。
⼀般情况下有三个⽬录。
BOOT-INF:这个⽂件夹下有两个⽂件夹classes⽤来存放⽤户类,也就是原始jar.original⾥的类;还有⼀个是lib,就是这个原始jar.original引⽤的依赖。
META-INF:这⾥是通过java -jar启动的⼊⼝信息,记录了⼊⼝类的位置等信息。
org:Springboot loader的代码,通过它来启动。
这⾥主要介绍⼀下/BOOT-INF/MANIFEST.MF⽂件Main-Class: org.springframework.boot.loader.JarLauncherStart-Class: .springboot.center.AuthEenterBootstrapMain-Class:记录了java -jar的启动⼊⼝,当使⽤该命令启动时就会调⽤这个⼊⼝类的main⽅法,显然可以看出,Springboot转移了启动的⼊⼝,不是⽤户编写的xxx.xxx.BootStrap的那个⼊⼝类。
java开发常用jar包用途

jar包用途axis.jar SOAP引擎包commons-discovery-0.2.jar 用来发现、查找和实现可插入式接口,提供一些一般类化、单件的生命周期管理的常用方法.jaxrpc.jar Axis运行所需要的组件包saaj.jar 创建到端点的点到点连接的方法、创建并处理SOAP消附件的方法,以及接收和处理SOAP错误的方法.wsdl4j-1.5.1.jar Axis运行所需要的组件包activation.jar JAF框架的jar包annotations-api.jar 使用注解所需jarant.jar 用于自动化调用程序完成项目的编译,打包,测试等aopalliance-1.0.jar 支持Spring AOPasm-2.2.3.jar ASM字节码库asm-commons-2.2.3.jar ASM字节码库asm-util-2.2.3.jar Java字节码操纵和分析框架aspectjrt.jar 处理事务和AOP所需的包aspectjweaver.jar 处理事务和AOP所需的包axiom-api-1.2.7.jar Axis 对象模型axiom-impl-1.2.7.jar Axis 对象模型bcprov-jdk15-140.jar 基于java1.5 的加密算法实现bfmclientmodel.jar 使用WebSphere所需jar包bpcclientcore.jar 使用WebSphere所需jar包bpe137650.jar 提供远程访问BPE容器的实现。
bsh-2.0b4.jar 解决负载逻辑运算c3p0-0.9.0.jar 开放源代码的JDBC连接池cglib-nodep-2.1_3.jar Spring中自动代理所需jar包cobertura.jar 测量测试覆盖率commons-beanutils-1.7.0.jar 动态的获取/设值Java Bean的属性commons-chain-1.1.jar 实现责任链设计模式的Java 类库commons-codec-1.3.jar 用来处理常用的编码方法的工具类包,例如DES、SHA1 Base64等等commons-collections-3.1.jar 对标准java Collection的扩展commons-collections.jar 对标准java Collection的扩展commons-digester-1.8.jar 用于处理struts-config.xml配置文件commons-fileupload-1.1.1.jar struts上传文件commons-httpclient-3.1.jar 用来简化HTTP客户端与服务器端进行各种通信编程实commons-io-1.1.jar 针对java.io.InputStream和Reader进行了扩展commons-lang-2.4.jar 对ng.*的扩展commons-logging-1.1.1.jar 日志包commons-pool-1.3.jar 实现对象池化框架commons-validator-1.3.1.jar 用来把验证规则程序提取出来,以供重复使用db2jcc.jar java连接DB2所需jardb2jcc_license_cu.jar java连接DB2所需jardom4j-1.6.1.jar 解析XMLehcache-1.2.4.jar hibernate的二级缓存如果用ehcache的时候需要此j emf.jar 基于Eclipse的模型框架ezmorph-1.0.6.jar 使用JSON所需的jar包FastInfoset-1.2.2.jar 使用WebService所需的jar包freemarker-2.3.8.jar Strus2支持的一种表现层框架geronimo-activation_1.1_spec-1.0.2.jar A pache Geronimo所带jar包,geronimo-annotation_1.0_spec-1.1.1.jar A pache Geronimo所带jar包geronimo-javamail_1.4_spec-1.3.jar Apache Geronimo所带jar包geronimo-jaxws_2.1_spec-1.0.jar Apache Geronimo所带jar包geronimo-jms_1.1_spec-1.1.1.jar Apache Geronimo所带jar包geronimo-servlet_2.5_spec-1.2.jar Apache Geronimo所带jar包geronimo-stax-api_1.0_spec-1.0.1.jar Apache Geronimo所带jar包hibernate3.jar Hibernate3的核心jar包htmclientmodel.jar 使用WebSphere所需jar包jakarta-oro.jar 一套文本处理工具,提供per15.0兼容的表达式,AWK 表达式,Glob表达式。
spring知识点总结

spring知识点总结Spring是一个开发应用程序的Java企业应用程序框架,它以依赖注入(DI)和面向切面(AOP)为基础,可以帮助开发者开发出模块化、可重用、可扩展、可测试的应用程序。
Spring可以用来构建Web应用程序、基于REST的服务、批处理应用程序以及各种不同类型的企业级应用程序。
下面是关于Spring的一些重要知识点总结:1. 控制反转(Inversion of Control,简称IoC):Spring的核心特性之一,通过IoC容器将对象的创建和依赖注入交给框架来管理,减少了代码的耦合度和管理对象的复杂性。
2. 依赖注入(Dependency Injection,简称DI):是IoC的一种实现方式,通过注解或配置文件将对象的依赖关系注入到对象中,使得对象在创建时不需要自己构造依赖的对象。
3. AOP(Aspect-Oriented Programming):面向切面编程,通过将横切关注点(如日志记录、安全性检查等)模块化,便于代码的维护和管理。
4. Spring MVC:用于构建Web应用程序的模块,提供了一种基于注解的方式来处理用户请求和生成响应,支持RESTful风格的开发。
5. 事务管理:Spring提供了对事务的支持,可以通过注解或配置文件的方式管理数据库事务,保证数据一致性和完整性。
6. 数据访问支持:Spring可以与各种数据访问技术(如JDBC、Hibernate、MyBatis等)无缝集成,简化了数据库操作的开发过程。
7. Spring Boot:Spring框架的一个子项目,用于简化Spring应用程序的配置和部署,提供了自动配置、嵌入式服务器等特性,使得开发者可以快速搭建一个可运行的Spring应用程序。
8. Spring Security:用于开发安全性强的应用程序,提供用户认证、授权、身份验证等功能。
9. Spring Cloud:基于Spring Boot开发的微服务框架,提供了服务发现、负载均衡、熔断器、配置管理等功能,帮助开发者构建分布式系统。
JAR包介绍大全用途作用详解JAVA

JAR包介绍大全用途作用详解JAVAJAR(Java Archive)是Java的一种标准压缩文件格式,它是一种将多个Java类文件、资源文件、配置文件和元数据文件打包成一个文件的方式。
JAR包的使用具有很多作用和用途,下面将详细介绍。
1. 代码打包和发布:通过将Java类文件打包成JAR包,可以方便地将整个项目的代码进行打包和发布。
这样可以简化代码的传输、分发和部署。
2. 代码模块化:JAR包可以将一组相关的Java类打包成一个模块,便于代码的管理和维护。
不同的模块可以根据需要进行组合,提高代码的可复用性和可扩展性。
3.应用程序部署:将应用程序的所有依赖的类和资源文件统一打包到一个JAR包中,方便进行部署和发布。
可以减少部署过程中的错误和问题。
4. 库文件管理:JAR包可以用来管理和分发Java库文件。
开发者可以将常用的库文件打包成JAR包,并在其他项目中使用。
5. 类库扩展:在Java中,可以通过类路径(CLASSPATH)来指定需要加载的类库。
而JAR包可以通过设置类路径来扩展Java的类库。
只需将JAR包加入到类路径中,就可以在代码中使用其中的类和方法。
6.版本管理:JAR包可以用来管理和分发不同版本的软件。
通过使用不同的JAR包命名规则或目录结构,可以区分不同版本的软件,方便用户选择特定版本的功能和功能。
7.防止类文件冲突:当使用多个第三方类库时,可能会发生类文件冲突的情况。
通过将每个类库打包成一个JAR包,并且每个类库中的类在包的结构中唯一,可以避免类文件冲突的问题,保证程序的正确运行。
8. 加载器和类加载:在Java中,类加载器负责将类文件加载到Java虚拟机中。
而JAR包是可以被类加载器加载的,可以通过类加载器的机制来加载JAR包中的类。
9. Java application扩展:JAR包可以作为Java应用程序的扩展,可以在运行时动态地加载和使用JAR包中的类和方法。
这种机制可以实现插件式的应用程序设计。
java中常用jar包

java中常⽤jar包commons-io.jar:可以看成是java.io的扩展,⽤来帮助进⾏IO功能开发.它包含三个主要的领域:Utilityclasses-提供⼀些静态⽅法来完成公共任务.Filters-提供⽂件过滤器的各种实现.Streams-提供实⽤的Stream,reader与writer实现.commons-beanutils.jar:提供对Java反射和⾃省API的包装,主要提供了对于 JavaBean进⾏各种操作。
commons-digester.jar:它能⽅便地将XML⽂档所定义的元素转化为JAVA对象,其实它的⽤法有点象栈(当然内在的原理就是那个古⽼的东西,只是提供了更⾼⼀层的封装)。
commons-lang.jar:它扩展了标准 ngAPI,增加了字符串操作⽅法、基本数值⽅法、对象反射、创建和串⾏化以及System属性。
它还包含⼀个可继承的enum类型、对多种嵌套的Exception类型的⽀持、对java.util.Date的增强以及⽤于构建⽅法的实⽤程序,例如⾃动⽣成 toString()的结果、⾃动实现hashCode()和equals()⽅法、数组操作、枚举、⽇期和时间的处理等等。
ArrayUtils–⽤于对数组的操作,如添加、查找、删除、⼦数组、倒序、元素类型转换等;BitField–⽤于操作位元,提供了⼀些⽅便⽽安全的⽅法;BooleanUtils–⽤于操作和转换boolean或者Boolean及相应的数组;CharEncoding–包含了Java环境⽀持的字符编码,提供是否⽀持某种编码的判断;CharRange–⽤于设定字符范围并做相应检查;CharSet–⽤于设定⼀组字符作为范围并做相应检查;CharSetUtils–⽤于操作CharSet;CharUtils–⽤于操作char值和Character对象;ClassUtils–⽤于对Java类的操作,不使⽤反射;ObjectUtils–⽤于操作Java对象,提供null安全的访问和其他⼀些功能;RandomStringUtils–⽤于⽣成随机的字符串;SerializationUtils–⽤于处理对象序列化,提供⽐⼀般Java序列化更⾼级的处理能⼒;StringEscapeUtils–⽤于正确处理转义字符,产⽣正确的Java、JavaScript、HTML、XML和SQL代码;StringUtils–处理String的核⼼类,提供了相当多的功能;SystemUtils–在ng.System基础上提供更⽅便的访问,如⽤户路径、Java版本、时区、操作系统等判断;Validate–提供验证的操作,有点类似assert断⾔;WordUtils–⽤于处理单词⼤⼩写、换⾏等。
spring jar 包详解

下载的spring包中文件及各种包众多,在项目中往往只有部分是我们必须的,如果不清楚什么时候需要什么包的话,看看下面就知道了。
aspectj目录下是在Spring框架下使用aspectj的源代码和测试程序文件。
Aspectj是java 最早的提供AOP的应用框架。
dist 目录下是 Spring 的发布包,关于发布包下面会详细进行说明。
docs 目录下是相关的文档,包括有Spring api 的javadoc、reference 参考指南、Spring 的标签库使用文件及Spring MVC 的MVC-step-by-step 讲解与示例。
都是很好的文档,值得好好研究一下。
lib 目录下是Spring 所依赖的第三方开源包。
mock 目录下是 Spring 辅助应用测试的Mock 源程序。
samples 目录下是 Spring 的示例源程序及简单的webapp 示例框架的示例配置,值得好好学习的有jpetstore 及petclinic,当然其它的countries、imagedb、tiles-example 也可以好好参考一下。
src 目录下是Spring 的源程序。
test 目录下Spring 的单元测试源程序。
tiger 目录下是针对在Spring框架中使用java 1.5的源程序及测试程序。
Tiger是jdk 1.5版本的开发代号。
接下来详细说说dist 目录下jar 包的相关内容。
了解这些内容有助于我们减小发布包的大小,同时也可以增加对Spring架构的了解。
spring.jar 是包含有完整发布模块的单个jar 包。
但是不包括mock.jar, aspects.jar, spring-portlet.jar, and spring-hibernate2.jar。
spring-src.zip就是所有的源代码压缩包。
除了spring.jar 文件,Spring 还包括有其它21 个独立的jar 包,各自包含着对应的Spring 组件,用户可以根据自己的需要来选择组合自己的jar 包,而不必引入整个spring.jar 的所有类文件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
spring相关jar包简介
spring.jar是包含有完整发布的单个jar包,spring.jar中包含除了 spring-mock.jar 里所包含的内容外其它所有jar包的内容,因为只有在开发环境下才会用到
spring-mock.jar来进行辅助测试,正式应用系统中是用不得这些类的。
除了spring.jar文件,Spring还包括有其它13个独立的jar包,各自包含着对应的Spring组件,用户可以根据自己的需要来选择组合自己的jar包,而不必引入整个spring.jar的所有类文件。
(1) spring-core.jar
这个jar文件包含Spring框架基本的核心工具类,Spring其它组件要都要使用到这个包里的类,是其它组件的基本核心,当然你也可以在自己的应用系统中使用这些工具类。
(2) spring-beans.jar
这个jar文件是所有应用都要用到的,它包含访问配置文件、创建和管理bean以及进行Inversion of Control / Dependency Injection(IoC/DI)操作相关的所有类。
如果应用只需基本的IoC/DI支持,引入spring-core.jar及spring- beans.jar文件就可以了。
(3) spring-aop.jar
这个jar文件包含在应用中使用Spring的AOP特性时所需的类。
使用基于AOP的Spring特性,如声明型事务管理(Declarative Transaction Management),也要在应用里包含这个jar包。
(4) spring-context.jar
这个jar文件为Spring核心提供了大量扩展。
可以找到使用Spring ApplicationContext特性时所需的全部类,JDNI所需的全部类,UI方面的用来与模板(Templating)引擎如Velocity、FreeMarker、JasperReports集成的类,以及校验Validation方面的相关类。
(5) spring-dao.jar
这个jar文件包含Spring DAO、Spring Transaction进行数据访问的所有类。
为了使用声明型事务支持,还需在自己的应用里包含spring-aop.jar。
(6) spring-hibernate.jar
这个jar文件包含Spring对Hibernate 2及Hibernate 3进行封装的所有类。
(7) spring-jdbc.jar
这个jar文件包含对Spring对JDBC数据访问进行封装的所有类。
(8) spring-orm.jar
这个jar文件包含Spring对DAO特性集进行了扩展,使其支持iBATIS、JDO、OJB、TopLink,因为Hibernate已经独立成包了,现在不包含在这个包里了。
这个jar文件里大部分的类都要依赖spring-dao.jar里的类,用这个包时你需要同时包含spring-dao.jar 包。
(9) spring-remoting.jar
这个jar文件包含支持EJB、JMS、远程调用Remoting(RMI、Hessian、Burlap、Http Invoker、JAX-RPC)方面的类。
(10) spring-support.jar
(11) spring-web.jar
这个jar文件包含Web应用开发时,用到Spring框架时所需的核心类,包括自动载入WebApplicationContext特性的类、Struts与JSF集成类、文件上传的支持类、Filter 类和大量工具辅助类。
(12) spring-webmvc.jar
这个jar文件包含Spring MVC框架相关的所有类。
包含国际化、标签、Theme、视图展现的FreeMarker、JasperReports、Tiles、Velocity、XSL T相关类。
当然,如果你的应用使用了独立的MVC框架,则无需这个JAR文件里的任何类。
(13) spring-mock.jar
这个jar文件包含Spring一整套mock类来辅助应用的测试。
Spring测试套件使用了其中大量mock类,这样测试就更加简单。
模拟HttpServletRequest和HttpServletResponse类在Web应用单元测试是很方便的。
如何选择这些发布包,决定选用哪些发布包其实相当简单。
如果你正在构建Web应用并将全程使用Spring,那么最好就使用单个全部的spring.jar文件;如果你的应用仅仅用到简单的Inversion of Control / Dependency Injection(IoC/DI)容器,那么只需spring-core.jar与spring-beans.jar即可;如果你对发布的大小要求很高,那么就得精挑细选了,只取包含自己所需特性的jar文件了。
采用独立的发布包你可以避免包含自己的应用不需要的全部类。
当然你可以采用其它的一些工具来设法令整个应用包变小,节省空间的重点在于准确地找出自己所需的Spring依赖类,然后合并所需的类与包就可以了。
Eclispe有个插件叫ClassPath Helper可以帮你找找所依赖的类。
Spring包依赖说明:
1) spring-core.jar需commons-collections.jar,spring-core.jar是以下其它各个的基本。
2) spring-beans.jar需spring-core.jar,cglib-nodep-2.1_3.jar
3) spring-aop.jar需spring-core.jar,spring-beans.jar,
cglib-nodep-2.1_3.jar,aopalliance.jar
4) spring-context.jar需spring-core.jar,spring-beans.jar,spring-aop.jar,commons-collections.jar,aopalliance.jar
5) spring-dao.jar需spring-core.jar,spring-beans.jar,spring-aop.jar,spring-context.jar
6) spring-jdbc.jar需spring-core.jar,spring-beans.jar,spring-dao.jar
7) spring-web.jar需spring-core.jar,spring-beans.jar,spring-context.jar
8) spring-webmvc.jar需
spring-core.jar/spring-beans.jar/spring-context.jar/spring-web.jar
9) spring -hibernate.jar需spring-core.jar,spring-beans.jar,spring-aop.jar,spring- dao.jar,spring-jdbc.jar,spring-orm.jar,spring-web.jar,
spring-webmvc.jar
10) spring-orm.jar需spring-core.jar,spring-beans.jar,spring-aop.jar,spring- dao.jar,spring-jdbc.jar,spring-web.jar,spring-webmvc.jar
11) spring -remoting.jar需spring-core.jar,spring-beans.jar,
spring-aop.jar,spring- dao.jar,spring-context.jar,spring-web.jar,
spring-webmvc.jar
12) spring-support.jar需spring-core.jar,spring-beans.jar,spring-aop.jar,spring-dao.jar,spring-context.jar,spring-jdbc.jar
13) spring-mock.jar需spring-core.jar,spring-beans.jar,spring-dao.jar,spring-context.jar,spring-jdbc.jar。