Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
Spring Framework 5.0 ÈëÃÅÆª
 
  4186  次浏览      28
 2019-5-28
 
±à¼­ÍƼö:

±¾ÎÄÀ´×ÔÓÚ²©¿ÍÔ°£¬±¾ÎÄÖ÷Òª½éÉÜÔÚÏîÄ¿ÖпªÊ¼Ê¹ÓÃspring-frameworkµÄÍÆ¼ö·½·¨ÊÇʹÓÃÒÀÀµ¹ÜÀíϵͳ£¬Ï£Íû¶ÔÄúµÄѧϰÓÐËù°ïÖú¡£

1.ΪʲôѧϰSpring?

Ëæ×ŶÔJava EEµÄ²»¶Ï½Ó´¥ºÍÀí½â£¬Äã»á·¢ÏÖSpring ÔÚ¸÷¸öÆóÒµºÍÏîÄ¿Öз¢»Ó×ÅÔ½À´Ô½ÖØÒªµÄ×÷Óá£ÕÆÎÕSpring ÒѳÉΪÎÒÃÇITÐÐÒµÉú´æ±ØÑ§µÄ±¾ÁìÖ®Ò»¡£

Spring Framework ÊÇÒ»¸ö¿ªÔ´µÄJava£¯Java EEÈ«¹¦ÄÜÕ»£¨full-stack£©µÄÓ¦ÓóÌÐò¿ò¼Ü£¬ÒÔApacheÐí¿ÉÖ¤ÐÎʽ·¢²¼£¬Ò²ÓÐ.NETƽ̨ÉϵÄÒÆÖ²°æ±¾¡£

¸Ã¿ò¼Ü»ùÓÚ Expert One-on-One Java EE Design and Development£¨ISBN 0-7645-4385-7£©Ò»ÊéÖеĴúÂ룬×î³õÓÉRod JohnsonºÍJuergen HoellerµÈ¿ª·¢¡£

Spring FrameworkÌṩÁËÒ»¸ö¼òÒ׵Ŀª·¢·½Ê½£¬ÕâÖÖ¿ª·¢·½Ê½£¬½«±ÜÃâÄÇЩ¿ÉÄÜÖÂʹµ×²ã´úÂë±äµÃ·±ÔÓ»ìÂҵĴóÁ¿µÄÊôÐÔÎļþºÍ°ïÖúÀà¡£

Spring Framework µ±Ç°×îа汾ÊÇSpring Framework 5,µ±Äã´ò¿ª¹ÙÍø£¬ÄãÓ¦¸ÃÄܹ»¿´µ½¹ÙÍøµÄÐû´«Í¼Æ¬

ÕâÀïÓиöÏà¹ØµÄÐÂÎÅÓÐÐËȤ¿ÉÒÔ¿´Ï£¬Ó¢ÎÄÔ­°æµØÖ·µã»÷²é¿´ ÖÐÎİæµã»÷²é¿´

¸ù¾Ý¹ÙÍø¶¯Ì¬ºÍÎÒËùÁ˽âµÄÐÅÏ¢À´¿´£¬Spring ¹ÙÍø»¹»á¼ÌÐøÖ§³ÖSpring MVC£¬ÒòΪËü»¹Óкܶà¸Ä½øµÄµØ·½¡£

µ«ÊÇδÀ´µÄÇ÷ÊÆÎÒÈÏΪ±Ø½«ÊÇ Spring Boot+ SpringWeb Flux + Spring Cloud.

ÄÇôSpring MVC ºÍ Spring Web Flux Á½ÕßÓкÎÇø±ðÄØ£¿

¹ÙÍø¶Ô´Ë¸ø³öÁËÕâÑùÒ»ÕŶԱÈͼ£º

·­ÒëϾÍÊÇ£º

Spring MVC»ùÓÚservlet API¹¹½¨£¬²¢Ê¹ÓÃÒ»¸öͬ²½×èÈûI / OÌåϵ½á¹¹ºÍÒ»¸öµ¥Ïß³ÌÇëÇóÏß³ÌÄ£Ð͵ÄWeb ¿ò¼Ü

Spring WebFluxÊÇÒ»¸ö·Ç×èÈûµÄWeb¿ò¼Ü£¬´Ó¸Ã×齨Á¢Æð£¬ÀûÓöàºË£¬ÏÂÒ»´ú´¦ÀíÆ÷ºÍ´óÁ¿²¢·¢Á¬½Ó¡£

×ܽ᣺

Spring MVC ÊÇ»ùÓÚServlet API ¹¹½¨µÄͬ²½×èÈûʽI/O µÄWeb ¿ò¼Ü¡£

Spring WebFlux ÊÇÒ»ÖÖ¸üÓÅÐãµÄ·Ç×èÈûʽWeb¿ò¼Ü£¬¶øÇÒÄܸüºÃ´¦Àí´óÁ¿²¢·¢Á¬½Ó¡£

¿´µ½ÕâÀÏàÐÅ´Ëʱ´ÏÃ÷µÄÄãÓ¦¸ÃÏþµÃΪʲôÎÒ֮ǰ»áÄÇô˵Á˰ɡ£

2. Spring ¹ÙÍø½éÉÜ

Spring ¹ÙÍø£ºhttps://spring.io/

Spring Îĵµ£ºhttps://spring.io/guides

Spring IDE: https://spring.io/tools/sts

Spring Project: https://spring.io/projects

ÏîÄ¿¿ìËÙÉú³ÉÆ÷£ºhttps://start.spring.io/

ÉÏÃæÕâЩÁ´½ÓÏàÐźܶàÈ˶¼ÖªµÀ£¬µ«ÊÇÆäʵÍùÍùÎÒÃDz»ÊǺÜÇå³þʲôʱºòÓÃÄĸöÁ´½Ó¡£

Spring ¹ÙÍø£º ¹Ø×¢Spring ¹ÙÍø¶¯Ì¬£¬×îеÄSpring ¼¼ÊõºÍ°æ±¾·¢²¼¹«¸æ

Spring Îĵµ£º what you want to do ? ÄãÏ뿪·¢Ò»¸öʲôÑùµÄÏîÄ¿£¿¿ÉÒÔÔÚÕâÀï¿ìËÙÕÒµ½Ïà¹Ø½éÉܺÍÎĵµ¡£

Spring IDE: Èç¹ûÄã´òËãÓÃEclipse °æ±¾,ÄÇôÎÒÍÆ¼öÓà ¹ÙÍøÕâ¸öSTS£¬ÒòΪËüÓ¦¸ÃÊÇ×îÓѺÃÖ§³ÖSpringµÄEclipse °æ±¾¡£µ±È»£¬Èç¹ûÈç¹ûÌõ¼þ¿ÉÒÔ£¬ÎÒ»¹ÊÇÇ¿ÁÒÍÆ¼öÄãʹÓÃIntellij Idea.

Spring Project: ÕâÀïÊǰ´ÕÕÏîĿģ¿é»®·ÖµÄ£¬±ÈÈç ´ÓÅäÖõ½°²È«£¬WebÓ¦ÓóÌÐòµ½´óÊý¾Ý£¬ÏëѧϰÄĸö¾Í°´ÕÕ·ÖÀàȥѧ¼´¿É¡£

ÏîÄ¿Éú³ÉÆ÷£ºÕâÀïÊÇSpring ¹ÙÍøÌṩµÄÒ»¸ö·Ç³£±ãÀûµÄ¹¤¾ß£¬ÐèÒªÄÄЩÒÀÀµ£¬Äĸö°æ±¾£¬ÔÚÕâÀïÅäÖÃÏÂÈ»ºóÏÂÔØ¼´¿É¡£

3. Spring Framework

Spring FrameworkºËÐÄÖ§³ÖÒÀÀµ×¢È룬ÊÂÎñ¹ÜÀí£¬WebÓ¦ÓóÌÐò£¬Êý¾Ý·ÃÎÊ£¬ÏûÏ¢´«µÝ£¬²âÊԺ͸ü¶à

Tips:ÕâÀï½²ÊöµÄÊÇ·­Òë https://projects.spring.io/spring-framework/ ÉÏÃæµÄÄÚÈÝ

3.1 ½éÉÜ

Spring¿ò¼ÜΪÏÖ´ú»ùÓÚJavaµÄÆóÒµÓ¦ÓóÌÐòÌṩÁËÒ»¸öÈ«ÃæµÄ±à³ÌºÍÅäÖÃÄ£ÐÍ - ÔÚÈκÎÀàÐ͵IJ¿Êðƽ̨ÉÏ¡£

SpringµÄÒ»¸ö¹Ø¼üÔªËØÊÇÓ¦ÓóÌÐò¼¶±ðµÄ»ù´¡¼Ü¹¹Ö§³Ö£ºSpring×ÅÖØÓÚÆóÒµÓ¦ÓóÌÐòµÄ¡°¹ÜµÀ¡±£¬ÒÔ±ãÍŶӿÉÒÔרעÓÚÓ¦ÓóÌÐò¼¶ÒµÎñÂß¼­£¬¶ø²»±ØÓëÌØ¶¨²¿Êð»·¾³Ðγɲ»±ØÒªµÄÁªÏµ¡£

3.2 ¹¦ÄÜÌØµã

ºËÐļ¼Êõ£ºÒÀÀµ×¢È룬ʼþ£¬×ÊÔ´£¬i18n£¬ÑéÖ¤£¬Êý¾Ý°ó¶¨£¬ÀàÐÍת»»£¬SpEL£¬AOP¡£

²âÊÔ£ºÄ£Äâ¶ÔÏó£¬TestContext¿ò¼Ü£¬Spring MVC²âÊÔ£¬WebTestClient¡£

Êý¾Ý·ÃÎÊ£ºÊÂÎñ£¬DAOÖ§³Ö£¬JDBC£¬ORM£¬±à×éXML¡£

Spring MVCºÍSpring WebFlux Web¿ò¼Ü

ÕûºÏ£ºÔ¶³Ì´¦Àí£¬JMS£¬JCA£¬JMX£¬µç×ÓÓʼþ£¬ÈÎÎñ£¬µ÷¶È£¬»º´æ¡£

ÓïÑÔ£ºKotlin£¬Groovy£¬¶¯Ì¬ÓïÑÔ¡£

Tips: ÕâÀï¼ÓÒ»ÕŹÙÍøÎĵµÖеÄÒ»¸ö½ØÍ¼°É£¬ÏàÐÅÓÐÖúÓÚÄã¸üºÃµØÀí½â¡£

3.3 ×îµÍÒªÇó

JDK 8+ for Spring Framework 5.x

JDK 6+ for Spring Framework 4.x

JDK 5+ for Spring Framework 3.x

Tips: ËùÒÔÄãµÄµçÄÔÏÖÔÚÍÆ¼öʹÓà JDK1.8+

3.4 ¿ìËÙ¿ªÊ¼

ÔÚÏîÄ¿ÖпªÊ¼Ê¹ÓÃspring-frameworkµÄÍÆ¼ö·½·¨ÊÇʹÓÃÒÀÀµ¹ÜÀíϵͳ - ÏÂÃæµÄ´úÂëÆ¬¶Î¿ÉÒÔ¸´ÖƲ¢Õ³Ìùµ½ÄúµÄ¹¹½¨ÖС£

ÐèÒª°ï棿 Çë²ÎÔÄÎÒÃÇÓйØÊ¹Óà MavenºÍ Gradle ¹¹½¨µÄÈëÃÅÖ¸ÄÏ¡£

Æäʵ²»Ö¹Spring ¹ÙÍøÎÒÃÇÈç½ñµÄ¸÷´ó¹«Ë¾Ó¦¸Ã´ó¶àÊýÒ²ÍÆ¼öÎÒÃÇÊÇÓÃMavenºÍGradle À´¹ÜÀíÏîÄ¿Jar°üÒÀÀµ¡£

Èç¹ûÄãʹÓõÄMaven:

<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId> spring-context</artifactId>
<version>5.1.0.BUILD-SNAPSHOT</version>
</dependency>
</dependencies><repositories>
<repository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/libs-snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>

Èç¹ûÄãÊÇÓõÄÊÇGradle

dependencies {
compile 'org.springframework: spring-context:5.1.0.BUILD-SNAPSHOT'
}repositories {
maven {
url 'https://repo.spring.io/libs-snapshot'
}
}

Tips: ÆäʵÎÒ¾õµÃGradleÓ¦¸ÃÊÇÒ»ÖÖ±ÈMaven¸üÏȽøµÄ°æ±¾ÒÀÀµ¹ÜÀí¹¤¾ß£¬²»¹ýÈç½ñ¸÷´ó¹«Ë¾Ê¹ÓÃGradle ËÆºõ»¹²»ÊǺܶ࣬ҲÐíÊÇÓëÒòΪEclipse ¶ÔGradle µÄÖ§³Ö»¹²»¹»ÏñIntellij Idea ÄÇôÍêÃÀ°É¡£

Spring¿ò¼Ü°üº¬Ðí¶à²»Í¬µÄÄ£¿é¡£ ÕâÀïÎÒÃÇչʾÁËÌṩºËÐŦÄܵÄspring-context¡£ ÓÐ¹ØÆäËûÑ¡ÏÇë²ÎÔÄÓÒ²àµÄÈëÃÅÖ¸ÄÏ¡£

Ò»µ©ÄãʹÓÃspring-contextÒÀÀµ¹ØÏµÉèÖÃÄãµÄ¹¹½¨£¬Äã¾Í¿ÉÒÔ×öµ½ÒÔϼ¸µã£º

µ½ÕâÀïºó¹ÙÍøÓÐЩ²»Ïêϸ£¬²¹³äÏ¡£

·½·¨Ò»£º ʹÓÃSTS ¹¤¾ß¹¹½¨Õâ¸ö´øÓÐSpring-context ÉÏÏÂÎĵÄÏîÄ¿

×¼±¸¹¤×÷£º

JDK 1.8

STS IDE

Tips: ÏÂÔØµÄʱºòÓиö¿Ó×¢ÒâÏ£¬Èç¹ûÄãµÄJDKÊÇ64λ£¬Ä¬ÈÏÖ±½ÓÏÂÔØµÄSTSÊÇ32룬»á³öÏÖÕâ¸ö´íÎó¡£

ËùÒÔÏÂÔØµÄʱºòÒ»¶¨ÒªÏÂÔØJDKÆ¥ÅäµÄ°æ±¾²ÅÐУ¬ÒƲ½£ºhttps://spring.io/tools/sts/all

ÕâÀïÏÂÔØÍê³ÉºóÎÒÃÇÔÚÎÒÃǵÄIDE¿Õ°×´¦£¬ÓÒ¼ü¡ª¡ª> New¡ª¡ª> Other...

ÊäÈëmaven ËÑË÷£¬Ñ¡ÔñMaven Project£¬´´½¨Ò»¸öMavenÏîÄ¿

Ñ¡ÔñĬÈϵŤ×÷¿Õ¼ä

Ñ¡ÔñĬÈϵÄÀàÐÍ

ÊäÈëÏîÄ¿»ù±¾ÐÅÏ¢ºóµã»÷Finish Íê³É

È»ºóÎÒÃÇÓ¦¸Ã¿ÉÒÔ¿´µ½ÕâÑùµÄÏîÄ¿½á¹¹

Ê×ÏÈÐÞ¸Äpom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.xingyun</groupId>
<artifactId>spring-context-sample</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>spring-context-sample</name>
<url>http://maven.apache.org</url>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId> spring-context</artifactId>
<version>5.1.0.BUILD-SNAPSHOT</version>
</dependency>
</dependencies>

<repositories>
<repository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/libs-snapshot</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>


</project>

´´½¨Îļþ

package com.xingyun.spring_context_sample.hello;

public interface MessageService {
String getMessage();
}

hello/MessagePrinter.java

package com.xingyun.spring_context_sample.hello;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
public class MessagePrinter {
final private MessageService service;

@Autowired
public MessagePrinter(MessageService service) {
this.service = service;
}

public void printMessage() {
System.out.println(this.service.getMessage());
}
}

Tips: ×¢ÒâÏÂÕâÀïÓиö×¢½â²»ÒªÍüÁË

App.java

package com.xingyun.spring_context_sample;

import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Annotation

ConfigApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

import com.xingyun.spring_context_sample.hello.MessagePrinter;
import com.xingyun.spring_context_sample.hello.MessageService;

@Configuration
@ComponentScan
public class App
{
@Bean
MessageService mockMessageService() {
return new MessageService() {
public String getMessage() {
return "Hello World!";
}
};
}
public static void main( String[] args )
{
ApplicationContext context =
new AnnotationConfigApplicationContext(App.class);
MessagePrinter printer = context.getBean

(MessagePrinter.class);
printer.printMessage();
}
}

Tips: ×¢ÒâÀàÉÏÓÐÁ½¸ö×¢½âºÍ·½·¨ÉÏÓÐÒ»¸ö×¢½â²»ÒªÍüÁË£¬ÀàµÄÃû×ÖÄã¿ÉÒԸijɹÙÍøÉϵÄApplication Ò²¿ÉÒÔ±£ÁôĬÈϵÄAppÃû×ÖÒ²ÐС£

´´½¨³É¹¦ºóÏîÄ¿½á¹¹Ó¦¸ÃÊÇÕâÑù

µ±È»¿ÉÄÜÄã»á¿´×ÅÕâÖÖÏîÄ¿½á¹¹²»Êæ·þ£¬ÄÇôÄãÒ²¿ÉÒÔÑ¡Ôñ¸Ä±äÏ¡£

ÏîÄ¿½á¹¹¾Í±ä³ÉÁËÕâÖÖ£º

ÔËÐÐApp.main() Ö÷·½·¨

ÏîĿԴÂëÏÂÔØ£ºhttps://github.com/geekxingyun/JavaEE-Framework-Sample/tree/master/spring-context-sample

¸½Â¼£ººËÐÄJar°üÒÀÀµ¹ØÏµ

Tips: Èç¹ûÄã²»ÊÇдһ¸öjava web Application,ÄÇô½«²»ÐèÒªspring-web Ä£¿é¡£

   
4186 ´Îä¯ÀÀ       28
Ïà¹ØÎÄÕÂ

ÆóÒµ¼Ü¹¹¡¢TOGAFÓëArchiMate¸ÅÀÀ
¼Ü¹¹Ê¦Ö®Â·-ÈçºÎ×öºÃÒµÎñ½¨Ä££¿
´óÐÍÍøÕ¾µçÉÌÍøÕ¾¼Ü¹¹°¸ÀýºÍ¼¼Êõ¼Ü¹¹µÄʾÀý
ÍêÕûµÄArchimateÊÓµãÖ¸ÄÏ£¨°üÀ¨Ê¾Àý£©
Ïà¹ØÎĵµ

Êý¾ÝÖÐ̨¼¼Êõ¼Ü¹¹·½·¨ÂÛÓëʵ¼ù
ÊÊÓÃArchiMate¡¢EA ºÍ iSpace½øÐÐÆóÒµ¼Ü¹¹½¨Ä£
ZachmanÆóÒµ¼Ü¹¹¿ò¼Ü¼ò½é
ÆóÒµ¼Ü¹¹ÈÃSOAÂ䵨
Ïà¹Ø¿Î³Ì

ÔÆÆ½Ì¨Óë΢·þÎñ¼Ü¹¹Éè¼Æ
ÖÐ̨սÂÔ¡¢ÖÐ̨½¨ÉèÓëÊý×ÖÉÌÒµ
ÒÚ¼¶Óû§¸ß²¢·¢¡¢¸ß¿ÉÓÃϵͳ¼Ü¹¹
¸ß¿ÉÓ÷ֲ¼Ê½¼Ü¹¹Éè¼ÆÓëʵ¼ù