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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
Spring¿ò¼Ü·ÖΪÄÄÆß´óÄ£¿é
 
×÷Õߣº ÐìÁõ¸ù
  4559  次浏览      27
 2019-11-19
 
±à¼­ÍƼö:
ÎÄÕÂÖ÷Òª½éÉÜÁËSpring¿ò¼ÜµÄÆß´óÄ£¿é£¬Spring¿ò¼ÜÖеÄÈý´óºËÐÄ˼ÏëÊÇʲô£¬Ï£Íû¶ÔÄúµÄѧϰÓÐËù°ïÖú¡£
±¾ÎÄÀ´×ÔÓÚcsdn£¬ÓÉ»ðÁú¹ûÈí¼þAlice±à¼­¡¢ÍƼö¡£

Spring¿ò¼ÜµÄÆß´óÄ£¿é

1. Spring Core£º

Core·â×°°üÊÇ¿ò¼ÜµÄ×î»ù´¡²¿·Ö£¬ÌṩIOCºÍÒÀÀµ×¢ÈëÌØÐÔ¡£ÕâÀïµÄ»ù´¡¸ÅÄîÊÇBeanFactory£¬ËüÌṩ¶ÔFactoryģʽµÄ¾­µäʵÏÖÀ´Ïû³ý¶Ô³ÌÐòÐÔµ¥ÀýģʽµÄÐèÒª£¬²¢ÕæÕýµØÔÊÐíÄã´Ó³ÌÐòÂß¼­ÖзÖÀë³öÒÀÀµ¹ØÏµºÍÅäÖá£

2.Spring Context:

¹¹½¨ÓÚCore·â×°°ü»ù´¡É쵀 Context·â×°°ü£¬ÌṩÁËÒ»ÖÖ¿ò¼ÜʽµÄ¶ÔÏó·ÃÎÊ·½·¨£¬ÓÐЩÏóJNDI×¢²áÆ÷¡£Context·â×°°üµÄÌØÐÔµÃ×ÔÓÚBeans·â×°°ü£¬²¢Ìí¼ÓÁ˶Թú¼Ê»¯£¨I18N£©µÄÖ§³Ö£¨ÀýÈç×ÊÔ´°ó¶¨£©£¬Ê¼þ´«²¥£¬×ÊÔ´×°ÔØµÄ·½Ê½ºÍContextµÄ͸Ã÷´´½¨£¬±ÈÈç˵ͨ¹ýServletÈÝÆ÷¡£

3£®Spring DAO:

DAO (Data Access Object)ÌṩÁËJDBCµÄ³éÏó²ã£¬Ëü¿ÉÏû³ýÈß³¤µÄJDBC±àÂëºÍ½âÎöÊý¾Ý¿â³§ÉÌÌØÓеĴíÎó´úÂë¡£ ²¢ÇÒ£¬JDBC·â×°°ü»¹ÌṩÁËÒ»Öֱȱà³ÌÐÔ¸üºÃµÄÉùÃ÷ÐÔÊÂÎñ¹ÜÀí·½·¨£¬²»½ö½öÊÇʵÏÖÁËÌØ¶¨½Ó¿Ú£¬¶øÇÒ¶ÔËùÓеÄPOJOs£¨plain old Java objects£©¶¼ÊÊÓá£

4.Spring ORM:

ORM ·â×°°üÌṩÁ˳£Óõġ°¶ÔÏó/¹ØÏµ¡±Ó³ÉäAPIsµÄ¼¯³É²ã¡£ ÆäÖаüÀ¨JPA¡¢JDO¡¢Hibernate ºÍ iBatis ¡£ÀûÓÃORM·â×°°ü£¬¿ÉÒÔ»ìºÏʹÓÃËùÓÐSpringÌṩµÄÌØÐÔ½øÐС°¶ÔÏó/¹ØÏµ¡±Ó³É䣬Èçǰ±ßÌáµ½µÄ¼òµ¥ÉùÃ÷ÐÔÊÂÎñ¹ÜÀí¡£

5.Spring AOP:

SpringµÄ AOP ·â×°°üÌṩÁË·ûºÏAOP Alliance¹æ·¶µÄÃæÏò·½ÃæµÄ±à³ÌʵÏÖ£¬ÈÃÄã¿ÉÒÔ¶¨Ò壬ÀýÈç·½·¨À¹½ØÆ÷£¨method-interceptors£©ºÍÇе㣨pointcuts£©£¬´ÓÂß¼­ÉϽ²£¬´Ó¶ø¼õÈõ´úÂëµÄ¹¦ÄÜñîºÏ£¬ÇåÎúµÄ±»·ÖÀ뿪¡£¶øÇÒ£¬ÀûÓÃsource-levelµÄÔªÊý¾Ý¹¦ÄÜ£¬»¹¿ÉÒÔ½«¸÷ÖÖÐÐΪÐÅÏ¢ºÏ²¢µ½ÄãµÄ´úÂëÖС£

6.Spring Web:

SpringÖÐµÄ Web °üÌṩÁË»ù´¡µÄÕë¶ÔWeb¿ª·¢µÄ¼¯³ÉÌØÐÔ£¬ÀýÈç¶à·½ÎļþÉÏ´«£¬ÀûÓÃServlet listeners½øÐÐIOCÈÝÆ÷³õʼ»¯ºÍÕë¶ÔWebµÄApplicationContext¡£µ±ÓëWebWork»òStrutsÒ»ÆðʹÓÃSpringʱ£¬Õâ¸ö°üʹSpring¿ÉÓëÆäËû¿ò¼Ü½áºÏ¡£

7.Spring Web MVC:

SpringÖеÄMVC·â×°°üÌṩÁËWebÓ¦ÓõÄModel-View-Controller£¨MVC£©ÊµÏÖ¡£SpringµÄMVC¿ò¼Ü²¢²»Êǽö½öÌṩһÖÖ´«Í³µÄʵÏÖ£¬ËüÌṩÁËÒ»ÖÖÇåÎúµÄ·ÖÀëÄ£ÐÍ£¬ÔÚÁìÓòÄ£ÐÍ´úÂëºÍWeb FormÖ®¼ä¡£²¢ÇÒ£¬»¹¿ÉÒÔ½èÖúSpring¿ò¼ÜµÄÆäËûÌØÐÔ¡£

Spring¿ò¼ÜÖеÄÈý´óºËÐÄ˼ÏëÊÇʲô

DI(ÒÀÀµ×¢Èë),IOC(¿ØÖÆ·´×ª),AOP(ÃæÏòÇÐÃæ±à³Ì)

IOCµÄ¸ÅÄîÒÔ¼°ÔÚSpringÈÝÆ÷ÖÐÈçºÎ½øÐÐIOCµÄ²Ù×÷¡£

IOC£ºInversion of Control£¬¿ØÖÆ·´×ª¡£ÔÚJava¿ª·¢ÖУ¬IOCÒâζ׎«ÄãÉè¼ÆºÃµÄÀཻ¸øÏµÍ³È¥¿ØÕâÀïд´úÂëÆ¬ÖÆ£¬¶ø²»ÊÇÔÚÄãµÄÀàÄÚ²¿¿ØÖÆ£¬Õâ³ÆÎª¿ØÖÆ·´×ª£¬¾ÍÊDZ»µ÷ÓÃÀàµÄʵÀýÓÉÔ­Ïȵĵ÷ÓÃÀà¿ØÖÆ´´½¨¡¢Ïú»ÙÏÖÔÚת±ä³ÉÓÉSpringµÄÈÝÆ÷¹ÜÀí¡£

SpringÈÝÆ÷ÊÇÈçºÎ¹ÜÀíBeanµÄÉúÃüÖÜÆÚµÄ(ÈçBeanµÄ³õʼ»¯·½·¨£¬BeanµÄÏú»Ù·½·¨)

´´½¨£º

<property name=¡±userDao¡± ref=¡±±»ÒýÓÃbeanµÄÃû³Æ¡± />
<property name=¡±username¡± value = ¡°×Ö·û´®¡±/>

ÔÚSpring¿ò¼ÜÖлñÈ¡Á¬½Ó³ØÓм¸ÖÖ·½Ê½¡£

µ±JNDIÓëDBCPͬʱ´æÔÚʱ£¬»á²»»á³öÏÖÎÊÌ⣬Èç¹û²»ÄÜͬʱ´æÔڵϰ£¬Çë˵Ã÷Ô­Òò

ËÄÖÖ·½Ê½£¬ÈçÏ£º

1£ºDBCPÊý¾ÝÔ´

DBCPÀà°üλÓÚ /lib/jakarta-commons/commons-dbcp.jar£¬DBCPÊÇÒ»¸öÒÀÀµJakarta commons-pool¶ÔÏ󳨻úÖÆµÄÊý¾Ý¿âÁ¬½Ó³Ø£¬ËùÒÔÔÚÀà·¾¶Ï»¹±ØÐë°üÀ¨/lib/jakarta-commons/commons-pool.jar¡£ÏÂÃæÊÇʹÓÃDBCPÅäÖÃoracleÊý¾ÝÔ´µÄÅäÖÃÆ¬¶Ï£º

<bean id=¡±dataSource¡±
class=¡±org.apache.commons.dbcp.BasicDataSource¡±
destroy-method=¡±close¡±>
<property name=¡±driverClassName¡±
value=¡± oracle.jdbc.driver.OracleDriver ¡± />
<property name=¡±url¡± value=¡±jdbc:oracle:thin:@localhost:1521:orcl ¡± />
<property name=¡±username¡± value=¡±root¡± />
<property name=¡±password¡± value=¡±1234¡å />
</bean>

2£ºC3P0Êý¾ÝÔ´

C3P0ÊÇÒ»¸ö¿ª·ÅÔ´´úÂëµÄJDBCÊý¾ÝԴʵÏÖÏîÄ¿£¬ËüÔÚlibĿ¼ÖÐÓëHibernateÒ»Æð·¢²¼£¬ÊµÏÖÁËJDBC3ºÍJDBC2À©Õ¹¹æ·¶ËµÃ÷µÄConnection ºÍStatement ³Ø¡£C3P0Àà°üλÓÚ/lib/c3p0/c3p0-0.9.0.4.jar¡£ÏÂÃæÊÇʹÓÃC3P0ÅäÖÃÒ»¸öOracleÊý¾ÝÔ´£º

<bean id=¡±dataSource¡± class=¡±com.mchange.v2.c3p0.ComboPooledDataSource¡±
destroy-method=¡±close¡±>
<property name=¡±driverClassName¡±
value=¡± oracle.jdbc.driver.OracleDriver ¡± />
<property name=¡±url¡± value=¡±jdbc:oracle:thin:@localhost:1521:orcl ¡± />
<property name=¡±username¡± value=¡±root¡± />
<property name=¡±password¡± value=¡±1234¡å />
</bean>

3. SpringµÄÊý¾ÝԴʵÏÖÀà(DriverManagerDataSource)

Spring±¾ÉíÒ²ÌṩÁËÒ»¸ö¼òµ¥µÄÊý¾ÝԴʵÏÖÀàDriverManagerDataSource £¬ËüλÓÚorg.springframework.jdbc.datasource°üÖС£Õâ¸öÀàʵÏÖÁËjavax.sql.DataSource½Ó¿Ú£¬µ«Ëü²¢Ã»ÓÐÌṩ³Ø»¯Á¬½ÓµÄ»úÖÆ£¬Ã¿´Îµ÷ÓÃgetConnection()»ñÈ¡ÐÂÁ¬½Óʱ£¬Ö»ÊǼòµ¥µØ´´½¨Ò»¸öеÄÁ¬½Ó¡£Òò´Ë£¬Õâ¸öÊý¾ÝÔ´Àà±È½ÏÊʺÏÔÚµ¥Ôª²âÊÔ»ò¼òµ¥µÄ¶ÀÁ¢Ó¦ÓÃÖÐʹÓã¬ÒòΪËü²»ÐèÒª¶îÍâµÄÒÀÀµÀà¡£

<bean id=¡±dataSource¡± class=¡±org.springframework.jdbc.datasource.Driver
ManagerDataSource¡± destroy-method=¡±close¡±>
<property name=¡±driverClassName¡±
value=¡± oracle.jdbc.driver.OracleDriver ¡± />
<property name=¡±url¡± value=¡±jdbc:oracle:thin:@localhost:1521:orcl ¡± />
<property name=¡±username¡± value=¡±root¡± />
<property name=¡±password¡± value=¡±1234¡å />
</bean>

4.»ñÈ¡JNDIÊý¾ÝÔ´

Èç¹ûÓ¦ÓÃÅäÖÃÔÚ¸ßÐÔÄܵÄÓ¦Ó÷þÎñÆ÷£¨ÈçWebLogic»òWebsphereµÈ£©ÉÏ£¬ÎÒÃÇ¿ÉÄܸüÏ£ÍûʹÓÃÓ¦Ó÷þÎñÆ÷±¾ÉíÌṩµÄÊý¾ÝÔ´¡£Ó¦Ó÷þÎñÆ÷µÄÊý¾ÝԴʹÓÃJNDI¿ª·Åµ÷ÓÃÕßʹÓã¬SpringΪ´ËרÃÅÌṩÒýÓÃJNDI×ÊÔ´µÄJndiObjectFactoryBeanÀà¡£ÏÂÃæÊÇÒ»¸ö¼òµ¥µÄÅäÖãº

<bean id=¡±dataSource¡±
class=¡±org.springframework.jndi.JndiObjectFa
ctoryBean¡±>
<property name=¡±jndiName¡± value=¡±java:comp
/env/jdbc/oracle¡±/>
</bean>

ͨ¹ýjndiNameÖ¸¶¨ÒýÓõÄJNDIÊý¾ÝÔ´Ãû³Æ¡£

ÔÚʹÓÃSpringµÄJDBCTemplate²Ù×÷Êý¾Ýʱ£¬±ØÐëÒªÍùÄ£°åÖÐ×¢ÈëÄÄЩ¶ÔÏó£¬Í¬Ê±Ä£°åÒª²»ÒªÊÖ¶¯¹Ø±ÕÊý¾Ý¿âÁ¬½Ó

×¢ÈëDataSourceÊý¾ÝÔ´¶ÔÏó

²»ÒªÊÖ¶¯¹Ø±ÕÊý¾Ý¿âÁ¬½Ó£¬JdbcTemplate»á°ïÎÒÃǹرÕÊý¾Ý¿âÁ¬½Ó

JdbcTemplateµÄQueryForList·½·¨µÃµ½List¼¯ºÏ£¬ÇëÎÊList¼¯ºÏÖÐÿһ¸ö¶ÔÏóΪʲôÊý¾ÝÀàÐÍ£¬ÔÚJSPÒ³ÃæÊ¹ÓÃEL±í´ïʽÈçºÎȡֵ¡£

ÿһ¸ö¶ÔÏóΪjava.util.MapÀàÐ͵ÄÊý¾Ý,EL±í´ïʽÀïÓÃȡֵ

AOPµÄ¸ÅÄîÒÔ¼°Ê¹ÓÃAOP»úÖÆÓÐʲôºÃ´¦¡£Java±à³ÌÖÐʵÏÖAOPÓм¸ÖÖ·½Ê½

AOPµÄ¸ÅÄîÊÇAspected Oriented Programming ÃæÉíÏò·½Ãæ±à³Ì¡£

ºÃ´¦£ºAOP½«³ÌÐò·Ö½â³É¸÷¸ö·½Ãæ»òÕß˵¹Ø×¢µã¡£ÕâʹµÃ¿ÉÒÔÄ£¿é»¯£¬Ï൱ºáÏòÉÏ·ÖÇÐÁË¡£Ëü¿ÉÒÔ½â¾öOOPºÍ¹ý³Ì»¯·½·¨²»Äܹ»ºÜºÃ½â¾öµÄºáÇУ¨crosscut£©ÎÊÌ⣬È磺ÊÂÎñ¡¢°²È«¡¢ÈÕÖ¾µÈºáÇйØ×¢

ʵÏÖAOPÓм¸ÖÖ·½Ê½:

Spring 1.2°æ±¾ÖÐͨ¹ýProxyFactoryBeanÀ´ÊµÏÖaop,¼´Í¨¹ý¶¯Ì¬´úÀíÀ´ÊµÏÖµÄ,Aspect±ØÐë¼Ì³ÐMethodBeforeAdvice,MethodAfterAdviceµÈ

Spring 2.0 AOPÐèÒª¸ÄµÄÊÇFBI Õâ¸öÀ࣬¶øÇÒËüÒ²²»ÐèÒªÔÙʵÏÖijЩ½Ó¿Ú

ÈýʹÓñê×¢£¨@AspectJ£©ÊµÏÖAOP

Spring¿ò¼ÜÖеÄÊÂÎñ´¦ÀíÓм¸ÖÖ¡£Çë·Ö±ð²ûÊöÁ½ÕßµÄÇø±ð

springÌṩµÄÊÂÎñ¹ÜÀí¿ÉÒÔ·ÖΪÁ½Àࣺ±à³ÌʽµÄºÍÉùÃ÷ʽµÄ¡£

±à³ÌʽµÄ£¬±È½ÏÁé»î£¬µ«ÊÇ´úÂëÁ¿´ó£¬´æÔÚÖØ¸´µÄ´úÂë±È½Ï¶à£»

ÉùÃ÷ʽµÄ±È±à³ÌʽµÄ¸üÁé»î.

±à³ÌʽÊÂÎñµÄ×ܽӿÚÊÇʲô?ʹÓñà³ÌʽÊÂÎñÐèÒªÓõ½ÄöSpringÊÂÎñµÄºËÐÄÀà¶ÔÏó

×ܽӿÚ

PlatformTransactionManager½Ó¿Ú,

ºËÐÄÀà:

TransactionDefinition //ÊÂÎñÊôÐÔ¶¨Òå
TranscationStatus //´ú±íÁ˵±Ç°µÄÊÂÎñ£¬¿ÉÒÔÌá½»£¬»Ø¹ö¡£
PlatformTransactionManagerºËÐĽӿڵÄ×ÓÀà

SpringµÄÉùÃ÷ʽÊÂÎñÄܲ»ÄÜΪÆÕͨµÄÀà²úÉú´úÀí½Ó¿Ú£¬Äܲ»ÄÜÔÚ´úÂëÖÐʹÓÃTry/CatchÄܲ¶»ñÒì³££¬Èç¹û²»¿ÉÒÔ£¬Çë˵Ã÷Ô­Òò

²»ÄÜ¡£SpringµÄÉùÃ÷ʽÊÂÎñΪʵÏÖÀà²úÉú´úÀí¡£²»ÄÜÔÚ´úÂëÖÐʹÓÃTry/Catch£¬ÒòΪ´úÂëÖв¶»ñÁËÒì³££¬SpringÈÝÆ÷²¶»ñ²»ÁËÒì³£¡£

ʹÓÃTransactionProxyFactoryBeanΪBean²úÉúÊÂÎñÎïÀíʱ£¬ÐèÒªÄöÊôÐÔÖµµÄÉèÖÃ:

<bean name=¡±baseTransactionProxy¡±
class=¡±org.springframework.transaction.interceptor.
Transaction
ProxyFactoryBean¡±>

¢Å<!¨C ΪÊÂÎñ´úÀíbean×¢ÈëÊÂÎñ¹ÜÀíÆ÷¨C>
<property name=¡±transactionManager¡± ref=¡±transactionManager¡±>
</property>
¢Æ<!¨C ÉèÖÃÊÂÎñÊôÐÔ¨C>
<property name=¡±transactionAttributes¡±>
<props>
¢Ç<!¨C ËùÓз½·¨²ÉÓÃrequiredµÄÊÂÎñ²ßÂÔ ->
<prop key=¡±*¡±>PROPAGATION_REQUIRED</prop>
</props>
</property>
¢È<!¨C ΪÊÂÎñ´úÀíbeanÉèÖÃÄ¿±êbean ¨C>
<property name=¡±target¡± ref=¡±userDao¡±>
</property>
</bean>
¢É<!¨C Ä¿±êbean ¨C>
<bean name=¡±userDao¡± class=¡±com.dao.userDao¡±>
<property name=¡±dataSource¡± ref=¡±dataSource¡± />
</property>
</bean>
 
   
4559 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

Java΢·þÎñÐÂÉú´úÖ®Nacos
ÉîÈëÀí½âJavaÖеÄÈÝÆ÷
JavaÈÝÆ÷Ïê½â
Java´úÂëÖÊÁ¿¼ì²é¹¤¾ß¼°Ê¹Óð¸Àý
Ïà¹ØÎĵµ

JavaÐÔÄÜÓÅ»¯
Spring¿ò¼Ü
SSM¿ò¼Ü¼òµ¥¼òÉÜ
´ÓÁ㿪ʼѧjava±à³Ì¾­µä
Ïà¹Ø¿Î³Ì

¸ßÐÔÄÜJava±à³ÌÓëϵͳÐÔÄÜÓÅ»¯
JavaEE¼Ü¹¹¡¢ Éè¼ÆÄ£Ê½¼°ÐÔÄܵ÷ÓÅ
Java±à³Ì»ù´¡µ½Ó¦Óÿª·¢
JAVAÐéÄâ»úÔ­ÀíÆÊÎö