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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
SSM¿ò¼Ü¡ª¡ª(SpringMVC + Spring + MyBatis + Maven¶àÄ£¿é)ÕûºÏ
 
  12039  次浏览      27
 2019-5-8
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚcsdn£¬±¾ÎÄÖ÷Òª½éÉÜÁËʲôÊÇSSM¿ò¼Ü,ΪʲôʹÓÃMaven¶àÄ£¿éÒÔ¼°´´½¨Maven¶àÄ£¿éÏîÄ¿µÄ¹ý³ÌµÈ£¬Ï£Íû¶Ô´ó¼ÒÄÜÓÐËù°ïÖú¡£

SpringMVC + Spring + MyBatis + Maven¶àÄ£¿é

SpringMVC + Spring + MyBatis

Maven¶àÄ£¿é

ÏîÄ¿µØÖ·£ºhttps://github.com/ryiann/ssm-parent

ʲôÊÇSSM¿ò¼Ü£¿

SpringMVC:

1.¿Í»§¶Ë·¢ËÍÇëÇóµ½DispacherServlet£¨·Ö·¢Æ÷)

2.ÓÉDispacherServlet¿ØÖÆÆ÷²éѯHanderMapping£¬ÕÒµ½´¦ÀíÇëÇóµÄController

3.Controllerµ÷ÓÃÒµÎñÂß¼­´¦Àíºó£¬·µ»ØModelAndView

4.DispacherSerclet²éѯÊÓͼ½âÎöÆ÷£¬ÕÒµ½ModelAndViewÖ¸¶¨µÄÊÓͼ

5.ÊÓͼ¸ºÔ𽫽á¹ûÏÔʾµ½¿Í»§¶ËSpring:

1.SpringÊÇÒ»¸öÇáÁ¿¼¶µÄ¿ØÖÆ·´×ª£¨IOC£©ºÍÃæÏòÇÐÃæ£¨AOP£©µÄÈÝÆ÷¼Ü¹¹£¬IOCÈÝÆ÷°üº¬²¢¹ÜÀíÓ¦ÓöÔÏóµÄÅäÖúÍÉúÃüÖÜÆÚ£¬Äã¿ÉÒÔÅäÖÃÄãµÄÿ¸öbeanÈçºÎ±»´´½¨£¬Ò²¿ÉÒÔÅäÖÃÿ¸öbeanÊÇÖ»ÓÐÒ»¸öʵÀý£¬»¹ÊÇÿ´ÎÐèҪʱ¶¼Éú³ÉÒ»¸öеÄʵÀý£¬ÒÔ¼°ËüÃÇÊÇÈçºÎÏ໥¹ØÁªµÄ

2.IOC˼Ïë×îºËÐĵĵط½ÔÚÓÚ£¬×ÊÔ´²»ÓÉʹÓÃ×ÊÔ´µÄË«·½¹ÜÀí£¬¶øÓɲ»Ê¹ÓÃ×ÊÔ´µÄµÚÈý·½¹ÜÀí£¬Õâ¿ÉÒÔ´øÀ´ºÜ¶àºÃ´¦¡£µÚÒ»£¬×ÊÔ´¼¯ÖйÜÀí£¬ÊµÏÖ×ÊÔ´µÄ¿ÉÅäÖúÍÒ×¹ÜÀí¡£µÚ¶þ£¬½µµÍÁËʹÓÃ×ÊÔ´Ë«·½µÄÒÀÀµ³Ì¶È£¬Ò²¾ÍÊÇÎÒÃÇ˵µÄñîºÏ¶È

3.ÈÝÆ÷ÌṩÁËAOP¼¼Êõ£¬ÀûÓÃËüºÜÈÝÒ×ʵÏÖÈçȨÏÞÀ¹½Ø¡¢ÔËÐÐÆÚ¼à¿ØµÈ¹¦ÄÜ

MyBatis:

1.MyBatisÊÇÖ§³ÖÆÕͨSQL²éѯ£¬´æ´¢¹ý³ÌºÍ¸ß¼¶Ó³ÉäµÄÓÅÐã³Ö¾Ã²ã¿ò¼Ü¡£MyBatisÏû³ýÁ˼¸ºõËùÓеÄJDBC´úÂëºÍ²ÎÊýµÄÊÖ¹¤ÉèÖÃÒÔ¼°½á¹û¼¯µÄ¼ìË÷¡£MyBatisʹÓüòµ¥µÄXML»ò×¢½âÓÃÓÚÅäÖúÍԭʼӳÉ䣬½«½Ó¿ÚºÍJavaµÄPOJOs£¨Plan Old Java Objects£¬ÆÕͨµÄJava¶ÔÏó£©Ó³Éä³ÉÊý¾Ý¿âÖеļǼ

2.MyBatisµÄ²Ù×÷¶¼ÊÇÎ§ÈÆÒ»¸ösqlSessionFactoryʵÀýÕ¹¿ªµÄ¡£MyBatisͨ¹ýÅäÖÃÎļþ¹ØÁªµ½¸÷ʵÌåÀàµÄMapperÎļþ£¬MapperÎļþÖÐÅäÖÃÁËÿ¸öÀà¶ÔÊý¾Ý¿âËùÐè½øÐеÄsqlÓï¾äÓ³Éä¡£ÔÚÿ´ÎÓëÊý¾Ý¿â½»»¥Ê±£¬Í¨¹ýsqlSessionFactoryÄõ½Ò»¸ösqlSession£¬ÔÙÖ´ÐÐsqlÃüÁî

ΪʲôʹÓÃMaven¶àÄ£¿é£¿

JavaEEÏîÄ¿¿ª·¢ÖÐΪÁ˱ãÓÚºóÆÚµÄά»¤£¬Ò»°ã»á½øÐзֲ㿪·¢£¬·Ö²ãÖ®ºó£¬¸÷¸ö²ãÖ®¼äµÄÖ°Ôð»á±È½ÏÃ÷È·£¬ºóÆÚά»¤ÆðÀ´Ò²Ïà¶Ô±È½ÏÈÝÒ×

ÏîÄ¿½á¹¹

´´½¨Maven¶àÄ£¿éÏîÄ¿

Ò»¡¢´´½¨ssm-parentÏîÄ¿

´´½¨ ssm-parent£¬ÓÃÀ´¸ø¸÷¸ö×ÓÄ£¿é¼Ì³Ð

ʹÓà cmd »òÕß Terminal£¬½øÈëÃüÁîÐУ¬ÊäÈëÒÔÏÂÃüÁî:

mvn archetype:generate -DgroupId=com.ryan -DartifactId=ssm-parent -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

ÃüÁîÖ´ÐÐÍê³ÉÖ®ºó¿ÉÒÔ¿´µ½ÔÚµ±Ç°Ä¿Â¼Éú³ÉÁËssm-parentĿ¼£¬ÀïÃæÓÐÒ»¸ösrcĿ¼ºÍÒ»¸ö pom.xmlÎļþ£¬ÈçÏÂͼËùʾ£º

½«srcÎļþ¼Ðɾ³ý£¬È»ºóÐÞ¸Äpom.xmlÎļþ£¬½«<packaging>jar</packaging>ÐÞ¸ÄΪ<packaging>pom</packaging>£¬pom±íʾËüÊÇÒ»¸ö±»¼Ì³ÐµÄÄ£¿é£¬Ð޸ĺóµÄÄÚÈÝÈçÏ£º

<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.ryan</groupId>
<artifactId>ssm-parent</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<name>ssm-parent</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>

×¢£º

archetype£ºmaven¹¤³ÌµÄÄ£°å¹¤¾ß°ü

mvn archetype:generate£º´´½¨ÏîÄ¿(ÔÚmaven 3.02ÒÔϵİ汾,ʹÓÃarchetype:create ÃüÁî´´½¨)

DgroupId£º×éÖ¯ID

DartifactId£ºÏîÄ¿ID

DarchetypeArtifactId£º¹¤³ÌÀàÐÍ

DinteractiveMode£ºÊÇ·ñÒѽ»»¥Ä£Ê½½øÐУ¬Èç¹ûÊÇfalseµÄ»°¾Í»á²ÉÓÃĬÈÏÉèÖý¨Á¢ÏîÄ¿

¶þ¡¢´´½¨ssm-domainÄ£¿é

ÃüÁîÐнøÈë´´½¨ºÃµÄssm-parentĿ¼£¬È»ºóÖ´ÐÐÏÂÁÐÃüÁ

mvn archetype:generate -DgroupId=com.ryan -DartifactId=ssm-domain -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

ÃüÁîÖ´ÐÐÍê³ÉÖ®ºó¿ÉÒÔ¿´µ½ÔÚssm-parentĿ¼ÖÐÉú³ÉÁËssm-domain£¬ÀïÃæ°üº¬srcĿ¼ºÍpom.xmlÎļþ¡£ÈçÏÂͼËùʾ£º

ÐÞ¸Ässm-domainĿ¼ÖеÄpom.xmlÎļþ£¬°Ñ<groupId>com.ryan</groupId>ºÍ<version>1.0-SNAPSHOT</version>È¥µô£¬¼ÓÉÏ<packaging>jar</packaging>£¬ÒòΪgroupIdºÍversion»á¼Ì³Ðssm-parentÖеÄgroupIdºÍversion£¬packagingÉèÖôò°ü·½Ê½Îªjar£¬Ð޸ĹýºóµÄpom.xmlÎļþÈçÏ£º

<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.ryan</groupId>
<artifactId>ssm-parent</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>ssm-domain</artifactId>
<packaging>jar</packaging>
<name>ssm-domain</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>

Èý¡¢´´½¨ssm-commonÄ£¿é

ÃüÁîÐнøÈë´´½¨ºÃµÄssm-parentĿ¼£¬È»ºóÖ´ÐÐÏÂÁÐÃüÁ

mvn archetype:generate -DgroupId=com.ryan -DartifactId=ssm-common -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

ÐÞ¸Ässm-commonĿ¼ÖеÄpom.xmlÎļþ£¬°Ñ<groupId>com.ryan</groupId>ºÍ<version>1.0-SNAPSHOT</version>È¥µô£¬¼ÓÉÏ<packaging>jar</packaging>£¬ÒòΪgroupIdºÍversion»á¼Ì³Ðssm-parentÖеÄgroupIdºÍversion£¬packagingÉèÖôò°ü·½Ê½Îªjar£¬Ð޸ĺóµÄÄÚÈÝÈçÏ£º

<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.ryan</groupId>
<artifactId>ssm-parent</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>ssm-common</artifactId>
<packaging>jar</packaging>
<name>ssm-common</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>

ËÄ¡¢´´½¨ssm-daoÄ£¿é

ÃüÁîÐнøÈë´´½¨ºÃµÄssm-parentĿ¼£¬È»ºóÖ´ÐÐÏÂÁÐÃüÁ

mvn archetype:generate -DgroupId=com.ryan -DartifactId=ssm-dao -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

ÐÞ¸Ässm-daoĿ¼ÖеÄpom.xmlÎļþ£¬°Ñ<groupId>com.ryan</groupId>ºÍ<version>1.0-SNAPSHOT</version>È¥µô£¬¼ÓÉÏ<packaging>jar</packaging>£¬ÒòΪgroupIdºÍversion»á¼Ì³Ðssm-parentÖеÄgroupIdºÍversion£¬packagingÉèÖôò°ü·½Ê½Îªjar£¬Í¬Ê±Ìí¼Ó¶Ôssm-domain¡¢ssm-commonÄ£¿éµÄÒÀÀµ£¬Ð޸ĺóµÄÄÚÈÝÈçÏ£º

<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.ryan</groupId>
<artifactId>ssm-parent</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>ssm-dao</artifactId>
<packaging>jar</packaging>
<name>ssm-dao</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.ryan</groupId>
<artifactId>ssm-domain</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.ryan</groupId>
<artifactId>ssm-common</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</project>

Îå¡¢´´½¨ssm-serviceÄ£¿é

ÃüÁîÐнøÈë´´½¨ºÃµÄssm-parentĿ¼£¬È»ºóÖ´ÐÐÏÂÁÐÃüÁ

mvn archetype:generate -DgroupId=com.ryan -DartifactId=ssm-service -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

ÐÞ¸Ässm-serviceĿ¼ÖеÄpom.xmlÎļþ£¬°Ñ<groupId>com.ryan</groupId>ºÍ<version>1.0-SNAPSHOT</version>È¥µô£¬¼ÓÉÏ<packaging>jar</packaging>£¬ÒòΪgroupIdºÍversion»á¼Ì³Ðssm-parentÖеÄgroupIdºÍversion£¬packagingÉèÖôò°ü·½Ê½Îªjar£¬Í¬Ê±Ìí¼Ó¶Ôssm-daoÄ£¿éµÄÒÀÀµ£¬ssm-serviceÒÀÀµssm-dao¡¢ssm-domainºÍssm-common£¬µ«ÊÇÎÒÃÇÖ»ÐèÌí¼Óssm-daoµÄÒÀÀµ¼´¿É£¬ÒòΪssm-daoÒѾ­ÒÀÀµÁËssm-domain¡¢ssm-common¡£Ð޸ĺóµÄÄÚÈÝÈçÏ£º

<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.ryan</groupId>
<artifactId>ssm-parent</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>ssm-service</artifactId>
<packaging>jar</packaging>
<name>ssm-service</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.ryan</groupId>
<artifactId>ssm-dao</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</project>

Áù¡¢´´½¨ssm-webÄ£¿é

ÃüÁîÐнøÈë´´½¨ºÃµÄssm-parentĿ¼£¬È»ºóÖ´ÐÐÏÂÁÐÃüÁ

mvn archetype:generate -DgroupId=com.ryan -DartifactId=ssm-web -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false

ÃüÁîÖ´ÐÐÍê³ÉÖ®ºó¿ÉÒÔ¿´µ½ÔÚssm-parentĿ¼ÖÐÉú³ÉÁËssm-web£¬ÀïÃæ°üº¬srcĿ¼ºÍpom.xmlÎļþ¡£ÈçÏÂͼËùʾ£º

ÐÞ¸Ässm-webĿ¼ÖеÄpom.xmlÎļþ£¬°Ñ<groupId>com.ryan</groupId>ºÍ<version>1.0-SNAPSHOT</version>È¥µô£¬ÒòΪgroupIdºÍversion»á¼Ì³Ðssm-parentÖеÄgroupIdºÍversion,packagingÉèÖôò°ü·½Ê½Îªwar£¬Í¬Ê±Ìí¼Ó¶Ôssm-serviceÄ£¿éµÄÒÀÀµ£¬Ð޸ĺóµÄÄÚÈÝÈçÏ£º

<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.ryan</groupId>
<artifactId>ssm-parent</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>ssm-web</artifactId>
<packaging>war</packaging>
<name>ssm-web Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.ryan</groupId>
<artifactId>ssm-service</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
<build>
<finalName>ssm-web</finalName>
</build>
</project>

ÖÁ´Ë£¬Maven¶àÄ£¿éÏîÄ¿ÒѾ­´î½¨Íê³É£¡

SSM¿ò¼ÜÕûºÏÅäÖÃ

ÎÒÃÇʹÓõÄÊÇmavenÀ´¹ÜÀíµÄjar£¬ËùÒÔÖ»ÐèÒªÔÚpom.xmlÖмÓÈëÏàÓ¦µÄÒÀÀµ£¬¾ÍÄܵ¼ÈëÐèÒªµÄjar°ü¡£ÕâÀï°ÑÏîÄ¿Óõ½µÄjarÌùÔÚÏÂÃæ£¬¿ÉÒÔ×Ô¼ºµ÷Õû°æ±¾ºÅ¡£ÒòΪÊǶàÄ£¿éÏîÄ¿£¬Ã¿¸ö×ÓÄ£¿éÏÂÃæ¶¼ÓÐpom.xml£¬ÕâÀïÖ»¾ÙÀýssm-serviceϵÄpom.xml£¬µ±È»ËùÓÐÄ£¿éµÄÒÀÀµÒ²¿ÉÒÔ¶¼·ÅÔÚssm-parentϵÄpom.xml(¼´¸¸ÏîÄ¿µÄpom.xml)£¬¿É°´ÕÕÐèÒª×ÔÐе÷Õû

ssm-service pom.xml

<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.ryan</groupId>
<artifactId>ssm-parent</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>ssm-service</artifactId>
<packaging>jar</packaging>
<name>ssm-service</name>
<url>http://maven.apache.org</url>
<properties>
<spring-version>4.1.5.RELEASE</spring-version>
</properties>
<dependencies>
<!-- spring web -->
<!-- https://mvnrepository.com/artifact
/org.springframework/spring-web -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring-version}</version>
</dependency>
<!-- spring jdbc -->
<!-- https://mvnrepository.com/artifact/
org.springframework/spring-jdbc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring-version}</version>
</dependency>
<!-- spring context -->
<!-- https://mvnrepository.com/artifact/
org.springframework/spring-context -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring-version}</version>
</dependency>
<!-- spring webmvc -->
<!-- https://mvnrepository.com/artifact/org.
springframework/spring-webmvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring-version}</version>
</dependency>
<!-- spring aspect -->
<!-- https://mvnrepository.com/artifact/org.
springframework/spring-aspects -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>${spring-version}</version>
</dependency>
<!-- mybatis -->
<!-- https://mvnrepository.com/artifact
/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.2.6</version>
</dependency>
<!-- mybatis spring -->
<!-- https://mvnrepository.com/artifact/
org.mybatis/mybatis-spring -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.2.2</version>
</dependency>
<!-- mysql -->
<!-- https://mvnrepository.com/artifact/
mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.18</version>
</dependency>
<!-- druid -->
<!-- https://mvnrepository.com/artifact
/com.alibaba/druid -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.29</version>
</dependency>
<!-- javax.websocket-api -->
<!-- https://mvnrepository.com/artifact/
javax.websocket/javax.websocket-api -->
<dependency>
<groupId>javax.websocket</groupId>
<artifactId>javax.websocket-api</artifactId>
<version>1.1</version>
<scope>provided</scope>
</dependency>
<!-- javaee-api -->
<!-- https://mvnrepository.com/artifact
/javax/javaee-api -->
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
<!-- junit -->
<!-- https://mvnrepository.com/artifact/
junit/junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!-- fileupload -->
<!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>com.ryan</groupId>
<artifactId>ssm-dao</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</project>

ÏÂÃæ¿ªÊ¼½øÐбàд¿ò¼ÜËùÐèÅäÖÃÎļþ

²ÎÊýÅäÖÃÎļþ

ͨ³£ÎÒÃǰÑÊý¾Ý¿âÅäÖá¢redisµÈÏà¹Ø²ÎÊý·Åµ½ÅäÖÃÎļþÖУ¬ËùÒÔÔÚssm-webÄ£¿éÖеÄresourcesÎļþ¼ÐÀïн¨applicationContext.propertiesÎļþ£¬´æ·ÅÏîÄ¿Ïà¹Ø²ÎÊýÅäÖÃ

#db
#jdbc.driver=oracle.jdbc.driver.OracleDriver
jdbc.driver=com.mysql.jdbc.Driver
#jdbc.url=jdbc:oracle:thin:@172.18.100.223:1521:duvet
jdbc.url=jdbc:mysql://mysql.lqiao.top:3306/student?useUnicode
=true&amp;characterEncoding=utf8
jdbc.username=student
jdbc.password=Password@123456

pool.maxPoolSize=10
pool.removeAbandonedTimeout=180000
pool.maxWait=10000
pool.timeBetweenEvictionRunsMillis=60000
pool.minEvictableIdleTimeMillis=300000
pool.validationQuery=select 1

×¢£º

ÅäÖÃÖеÄÊý¾Ý¿âÐÅϢΪ²âÊԿ⣬ֻÓÐselectȨÏÞ

Á¬½Ó³ØÊý¾ÝÔ´ÅäÖÃÎļþ

ÔÚssm-webÄ£¿éÖеÄresourcesÎļþ¼ÐÀïн¨dataSource.xmlÎļþ£¬ÅäÖÃÁ¬½Ó³ØÊý¾ÝÔ´

Êý¾Ý¿âÁ¬½ÓÐÅÏ¢

ÅäÖÃÊý¾Ý¿âÁ¬½Ó³Ø

ÉùÃ÷ʽÊÂÎñ

ÅäÖÃSqlSessionFactory¶ÔÏó

ɨÃèdao²ã½Ó¿Ú£¬¶¯Ì¬ÊµÏÖdao½Ó¿Ú

dataSource.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org
/schema/beans"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org
/schema/beans
http://www.springframework.org/schema/beans/
spring-beans-4.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">

<bean id="dataSource" class="com.alibaba.druid.pool.
DruidDataSource" init-method="init" destroy-method="close">
<property name="url" value="${jdbc.url}" />
<property name="driverClassName" value="${jdbc.driver}" />
<property name="maxActive" value="${pool.maxPoolSize}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<!-- ³¬¹ýʱ¼äÏÞÖÆÊÇ·ñ»ØÊÕ -->
<property name="removeAbandoned" value="true" />
<!-- ³¬Ê±Ê±¼ä£»µ¥Î»ÎªÃë¡£180Ãë=3·ÖÖÓ -->
<property name="removeAbandonedTimeout" value="${pool.removeAbandonedTimeout}" />
<!-- ÅäÖûñÈ¡Á¬½ÓµÈ´ý³¬Ê±µÄʱ¼ä -->
<property name="maxWait" value="${pool.maxWait}" />
<!-- ÅäÖüä¸ô¶à¾Ã²Å½øÐÐÒ»´Î¼ì²â£¬¼ì²âÐèÒª¹Ø±ÕµÄ¿ÕÏÐÁ¬½Ó£¬µ¥Î»ÊǺÁÃë -->
<property name="timeBetweenEvictionRunsMillis" value="${pool.timeBetweenEvictionRunsMillis}" />
<!-- ÅäÖÃÒ»¸öÁ¬½ÓÔÚ³ØÖÐ×îСÉú´æµÄʱ¼ä£¬µ¥Î»ÊǺÁÃë -->
<property name="minEvictableIdleTimeMillis" value="${pool.minEvictableIdleTimeMillis}" />
<property name="validationQuery" value=
"${pool.validationQuery} " />
<property name="testWhileIdle" value="true" />
<property name="testOnBorrow" value="false" />
<property name="testOnReturn" value="false" />
</bean>


<!-- ÊÂÎñ ¿ØÖÆ begin -->
<bean name="transactionManager"
class=
"org.springframework.jdbc.datasource.
DataSourceTransactionManager">
<property name="dataSource" ref="dataSource">
</property>
</bean>
<tx:annotation-driven transaction-manager=
"transactionManager" proxy-target-class="true"
order="10"/>
<!-- ÊÂÎñ ¿ØÖÆ end -->

<!-- ×Ô¶¯É¨ÃèmappingÎļþ start -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation"
value="classpath:mybatis-config.xml" />
<property name="mapperLocations">
<list>
<!-- ±íʾÔÚcom/ryan/mapper°ü»òÒÔÏÂËùÓÐĿ¼ÖУ¬ÒÔ-Mapper.xml½áβËùÓÐÎļþ -->
<value>classpath*:com/ryan/mapper/**/*Mapper.xml</value>
</list>
</property>
<!--<property name="typeAliasesSuperType" value="com.ryan.framework.entity.BaseEntity" />-->
<property name="configurationProperties">
<props>
<!--<prop key="dialect">oracle</prop>-->
<prop key="dialect">mysql</prop>
</props>
</property>
<property name="plugins">
<list>
<!--<bean class="com.ryan.framework.mybatis.
SqlInterceptor" />-->
</list>
</property>
</bean>
<bean class="org.mybatis.spring.mapper.
MapperScannerConfigurer">
<property name="basePackage" value="com.ryan.dao" />
<property name="sqlSessionFactoryBeanName"
value="sqlSessionFactory" />
</bean>
<!-- ×Ô¶¯É¨ÃèmappingÎļþ end -->
</beans>

MyBatisÅäÖÃÎļþ

ÏîĿʹÓÃMyBatis³Ö¾Ã²ã¿ò¼Ü£¬ËùÒÔÐèÒªÅäÖÃMyBatisºËÐÄÎļþ£¬ÔÚssm-webÄ£¿éÖÐrecourcesÎļþ¼ÐÀïн¨mybatis-config.xmlÎļþ

Ö¸¶¨ÈÕÖ¾¸ñʽ

ÊÇ·ñ¿ªÆô×Ô¶¯ÍÕ·åÃüÃû¹æÔò

ÑÓ³Ù¼ÓÔØ

°´Ðè¼ÓÔØ¶ÔÏó

·ÖÒ³²å¼þ

mybatis-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>
<settings>
<!-- Ö¸¶¨ MyBatis ËùÓÃÈÕÖ¾µÄ¾ßÌåʵÏÖ -->
<setting name="logImpl" value="LOG4J" />
<!-- ÊÇ·ñ¿ªÆô×Ô¶¯ÍÕ·åÃüÃû¹æÔò -->
<setting name="mapUnderscoreToCamelCase" value="true" />
<!-- ÑÓ³Ù¼ÓÔØµÄÈ«¾Ö¿ª¹Ø -->
<setting name="lazyLoadingEnabled" value="true"/>
<!-- °´Ðè¼ÓÔØ¶ÔÏó -->
<setting name="aggressiveLazyLoading" value="false"/>
</settings>

<!-- ÅäÖ÷ÖÒ³²å¼þ -->
<plugins>
<plugin interceptor="com.github.pagehelper.PageHelper">
<!-- ÉèÖÃÊý¾Ý¿âÀàÐÍ Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQLÁùÖÖÊý¾Ý¿â-->
<property name="dialect" value="mysql"/>
<!--<property name="dialect" value="oracle"/>-->
</plugin>
</plugins>
</configuration>

ÒµÎñ¼¯³ÉÅäÖÃ

´¦ÀíÒµÎñÏà¹Ø£¬ÔÚssm-serviceµÄrecourcesÎļþ¼ÐÀïн¨applicationContext-service.xmlÎļþ

ɨÃè×¢½â

applicationContext-service.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org
/schema/beans"
xmlns:context="http://www.springframework.org
/schema/context"
xmlns:aop="http://www.springframework.org
/schema/aop"
xmlns:xsi="http://www.w3.org/2001
/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/
schema/beans
http://www.springframework.org/schema/beans
/spring-beans-4.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/
context/spring-context-4.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/
spring-aop-4.0.xsd">

<aop:config />
<!-- enable @AspectJ support with XML based
configuration -->
<aop:aspectj-autoproxy />
<context:annotation-config />
<!-- Æô¶¯°üɨÃ蹦ÄÜ£¬ÒÔ±ã×¢²á´øÓÐ@Controller¡¢
@Service¡¢@repository¡¢
@ComponentµÈ×¢½âµÄÀà³ÉΪspringµÄbean -->
<context:component-scan base-package="com.ryan" />
</beans>

WebÓ¦ÓóÌÐòÅäÖÃÎļþ

¿ªÆôSpringMVC×¢½âģʽ

ÊÓͼ½âÎöÆ÷

rest-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"
>
<mvc:annotation-driven/>
<bean id="contentNegotiationManager" class=
"org.springframework.web.accept.
ContentNegotiationManagerFactoryBean">
<property name="mediaTypes">
<map>
<entry key="xml" value="application/xml"/>
<entry key="html" value="text/html"/>
</map>
</property>
</bean>
<bean class=
"org.springframework.web.servlet.view.
ContentNegotiatingViewResolver">
<property name="contentNegotiationManager"
ref="contentNegotiationManager"/>
<property name="viewResolvers">
<list>
<bean class="org.springframework.web.servlet.
view.BeanNameViewResolver"/>
<bean id="viewResolver" class=
"org.springframework.web.servlet.view.
UrlBasedViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/view/"/>
<property name="suffix" value=".jsp"/>
</bean>
</list>
</property>
</bean>
</beans>

web.xml

×Ö·û±àÂë¹ýÂËÆ÷

ÅäÖÃSpringÐèÒª¼ÓÔØµÄÅäÖÃÎļþ

ÅäÖÃDispatcherServlet·Ö·¢Æ÷

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
<!--filter -->
<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.
CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceRequestEncoding</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>forceResponseEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>contextfilter</filter-name>
<filter-class>com.ryan.filter.WebContextFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>contextfilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!--mode1 start-->
<!-- spring -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml
</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.
ContextLoaderListener</listener-class>
</listener>
<!-- spring mvc -->
<servlet>
<servlet-name>rest</servlet-name>
<servlet-class>org.springframework.web.servlet.
DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>rest</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<!--mode1 end-->
<!--mode2 start-->
<!--<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.
DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml
</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>-->
<!--mode2 end-->
<display-name>ssm-parent</display-name>
</web-app>

ÆäËûÅäÖÃ

ÏîÄ¿Öл¹ÅäÖÃÁËÈÕÖ¾¡¢ÊÂÎñ¡¢Ï̳߳ؼ°SpringÌø×ªÅäÖ㬿ɸù¾Ýʵ¼ÊÇé¿öÕå×ÃÔöɾÅäÖÃ

Êý¾Ý¿â½Å±¾

ÕâÀïÌùÉÏdemoµÄÊý¾Ý¿â£¬²¢Îªstudent±í³õʼ»¯Ò»Ð©Êý¾Ý

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for t_student_info
-- ----------------------------
DROP TABLE IF EXISTS `t_student_info`;
CREATE TABLE `t_student_info` (
`stu_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '񅧏',
`stu_number` int(11) NULL DEFAULT NULL COMMENT 'ѧºÅ',
`stu_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 'ÐÕÃû',
`stu_gender` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT 'ÐÔ±ð',
`stu_age` int(3) NULL DEFAULT NULL COMMENT 'ÄêÁä',
PRIMARY KEY (`stu_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 10004 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of t_student_info
-- ----------------------------
INSERT INTO `t_student_info` VALUES (10001, 95001, 'ÕÅÈý', 'ÄÐ', 20);
INSERT INTO `t_student_info` VALUES (10002, 95002, 'ÀîËÄ', 'ÄÐ', 21);
INSERT INTO `t_student_info` VALUES (10003, 95003, 'ÍõÎå', 'Å®', 22);
SET FOREIGN_KEY_CHECKS = 1;

¿´µ½ÕâÀÆäʵÎÒÃǵÄssm¿ò¼ÜÓëmaven¶àÄ£¿éµÄÕûºÏÅäÖÃÒѾ­Íê³ÉÁË£¬demoÀïÒ²ÒѾ­ÊµÏÖÁ˼òµ¥µÄÔöɾ¸Ä²é£¬Ö»²»¹ýȱÉÙÒ³Ãæ¶øÒÑ£¬ºǫ́´¦ÀíµÄÊý¾Ý·µ»Øµ½Ò³ÃæÉÏÊÇÒ»´®json,²»¹ýÕâЩÒѾ­×㹻չʾÁË£¬ÐèÒªµÄͬѧ¿ÉÒÔÈ¥ÏÂÔØ£¬¸Ð¾õ»¹²»´í¾Í¸ø¸östar°É£¡

 
   
12039 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

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

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

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