Spring 4.0.0 spring-framework-reference QQ 413615763 Weibo le Email not-three@foxmail.com 2013.12.16 2.2 2013.12.17 2.3 : 2013.12.18 2.3 : 2013.12.18 2.3 :- Commons Logging Spring Spring Spring IoC StrutsHibernate JDBCSpringRMIweb MVC AOP Spring Spring Spring Spring Spring Spring Spring Getting Started
Spring portfolio Getting Started Building a RESTful Web Service Spring Spring SpringJavaJavaSpring Spring Java POJO POJO Java SE Java EE Java EE Spring JavaAPI JavaAPI JavaJMX API Java JMS API 问题是, 它们反向控制了哪 一 方 面?? 2004 年,Martin Fowler 在他的个 人站点上提出了关于控制反转 (IoC) 的问题 Fowler 建议重新制定原则使之更加 自然, 由此提出了依赖注入 Ioc DIFowler JavaN Java SpringIoC Spring Spring Spring 20 / WebAOP
2.1 Spring Core Beans Core BeansIoC BeanFactory Core Beans JNDI Beans Servlet Java EE EJB JMXApplicationContext JSP 2.1EL Spring IoC / /JDBC ORM OXM JMS JDBCJDBCJDBC
ORM API APIJPA JDO Hibernate ORMO/RSpring OXM /XML JAXB Castor XML Beans JiBXXStream Java JMS POJO Web Web Web Web-Servlet WebSocket Web-Portlet Spring Web Webmultipartservlet Web IoC Spring web Web-Servlet Spring web -- MVCSpring MVC web Spring Web-Porlet portlet MVCWeb-Servlet AOP Spring AOP.NET Aspects AspectJ JUnitTestNG Spring Spring ApplicationContexts Sprinweb Spring
2.2 Spring web Springweb EJB POJO Spring IoC Springweb Spring ORMJPA Hibernate JDO Hibernate Hibernate SessionFactory webactionforms HTTP
2.3 web Spring Spring SpringStruts Tapestry JSF UI Spring ApplicationContextWebApplicationContext web
2.4 webspring HessianBurlapRmi JaxRpc
2.5 EJB - POJO Spring JavaBean POJO bean bean web Spring jar Spring commons-dbcp commons-dbcpcommons-pool Spring Spring jar Spring web spring-webspring spring-*spring-*.jar*spring-core springwebmvc spring-jms jar spring-core-4.0.0.release.jar Spring Maven Central MavenSpring Maven CentralSpringMaven jarspring-*-.jar Maven idorg.springframework Spring MavenGA jarmaven Central Spring jar zip Maven Gradle Ivyjar Spring Spring Spring Spring jar Spring Maven Gradle Ivy SpringGradle Gadle Maven
Maven Maven Maven <dependencies> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-context</artifactid> <version>4.0.0.release</version> <scope>runtime</scope> </dependency> </dependencies> Spring API scope runtime Maven Central Spring Maven Maven Maven <repositories> <repository> <id>io.spring.repo.maven.release</id> <url>http://repo.spring.io/release/</url> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories> <repositories> <repository> <id>io.spring.repo.maven.milestone</id> <url>http://repo.spring.io/milestone/</url> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories>
<repositories> <repository> <id>io.spring.repo.maven.snapshot</id> <url>http://repo.spring.io/snapshot/</url> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories> Maven MavenSpring jar Spring Maven BOM dependencymanagementspring-framework-bom Spring <dependencymanagement> <dependencies> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-framework-bom</artifactid> <version>4.0.0.release</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencymanagement> BOM Spring <version> <dependencies> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-context</artifactid> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-web</artifactid> </dependency> <dependencies>
Gradle GradleSpring repositories URL repositories { mavencentral() // and optionally... maven { url "http://repo.spring.io/release" } } repositories URL/release /milestone /shapshot Gradle dependencies { compile("org.springframework:spring-context:4.0.0.release") testcompile("org.springframework:spring-test:4.0.0.release") } Ivy Ivyivysettings.xml Ivy Spring <resolvers> <ibiblio name="io.spring.repo.maven.release" m2compatible="true" root="http://repo.spring.io/release/"/> </resolvers> /release /milestone /snapshot/url ivy.xml <dependency org="org.springframework" name="spring-core" rev="4.0.0.release" conf="compile->runtime"/> Zip Springzip zip Spring MavenMaven zipweb
http://repo.spring.io/release/org/springframework/spring zip-dist.zip spring-framework-4.0.0.release-dist.zip Spring a) b) c) Spring SpringJakarta Commons Logging API JCL JCL JCL Log Spring Spring SpringSpringcommonslogging JCLMaven commons-loggingspringspring-core commons-logging JDK java.util.loggingjulspring Commons Logging commons-logging Spring Spring Simple Logging Facade for Java SLF4JSpring commons-logging MavenSpring
<dependencies> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-context</artifactid> <version>4.0.0.release</version> <scope>runtime</scope> <exclusions> <exclusion> <groupid>commons-logging</groupid> <artifactid>commons-logging</artifactid> </exclusion> </exclusions> </dependency> </dependencies> JCL API SLF4JJCL