• SSM整合


    整合的思路是:

       先创建spring框架

       通过spring整合spring mvc

       通过spring整合mybatis

    工程创建

       创建Maven工程–>create for archtype–>webapp

    创建项目结构

    在recourses目录下创建 dbconfig.propertieslog4j.properties、mysqlConfig.xml、springmvc.xml、applicationContext.xml

    在pom.xml添加相关依赖

    1. <dependencies>
    2. <dependency>
    3. <groupId>junitgroupId>
    4. <artifactId>junitartifactId>
    5. <version>4.12version>
    6. dependency>
    7. <dependency>
    8. <groupId>commons-logginggroupId>
    9. <artifactId>commons-loggingartifactId>
    10. <version>1.2version>
    11. dependency>
    12. <dependency>
    13. <groupId>log4jgroupId>
    14. <artifactId>log4jartifactId>
    15. <version>1.2.17version>
    16. dependency>
    17. <dependency>
    18. <groupId>mysqlgroupId>
    19. <artifactId>mysql-connector-javaartifactId>
    20. <version>5.1.41version>
    21. dependency>
    22. <dependency>
    23. <groupId>com.mchangegroupId>
    24. <artifactId>c3p0artifactId>
    25. <version>0.9.5.1version>
    26. dependency>
    27. <dependency>
    28. <groupId>com.mchangegroupId>
    29. <artifactId>mchange-commons-javaartifactId>
    30. <version>0.2.10version>
    31. dependency>
    32. <dependency>
    33. <groupId>org.mybatisgroupId>
    34. <artifactId>mybatisartifactId>
    35. <version>3.4.2version>
    36. dependency>
    37. <dependency>
    38. <groupId>org.mybatisgroupId>
    39. <artifactId>mybatis-springartifactId>
    40. <version>1.3.1version>
    41. dependency>
    42. <dependency>
    43. <groupId>taglibsgroupId>
    44. <artifactId>standardartifactId>
    45. <version>1.1.2version>
    46. <type>jartype>
    47. dependency>
    48. <dependency>
    49. <groupId>javax.servletgroupId>
    50. <artifactId>jstlartifactId>
    51. <version>1.2version>
    52. <type>jartype>
    53. dependency>
    54. <dependency>
    55. <groupId>javax.servlet.jspgroupId>
    56. <artifactId>javax.servlet.jsp-apiartifactId>
    57. <version>2.3.3version>
    58. <scope>providedscope>
    59. dependency>
    60. <dependency>
    61. <groupId>javax.servletgroupId>
    62. <artifactId>javax.servlet-apiartifactId>
    63. <version>4.0.1version>
    64. <scope>providedscope>
    65. dependency>
    66. <dependency>
    67. <groupId>com.fasterxml.jackson.coregroupId>
    68. <artifactId>jackson-annotationsartifactId>
    69. <version>2.8.6version>
    70. dependency>
    71. <dependency>
    72. <groupId>com.fasterxml.jackson.coregroupId>
    73. <artifactId>jackson-coreartifactId>
    74. <version>2.8.1version>
    75. dependency>
    76. <dependency>
    77. <groupId>com.fasterxml.jackson.coregroupId>
    78. <artifactId>jackson-databindartifactId>
    79. <version>2.7.5version>
    80. dependency>
    81. <dependency>
    82. <groupId>org.springframeworkgroupId>
    83. <artifactId>spring-coreartifactId>
    84. <version>4.3.7.RELEASEversion>
    85. dependency>
    86. <dependency>
    87. <groupId>org.springframeworkgroupId>
    88. <artifactId>spring-beansartifactId>
    89. <version>4.3.7.RELEASEversion>
    90. dependency>
    91. <dependency>
    92. <groupId>org.springframeworkgroupId>
    93. <artifactId>spring-contextartifactId>
    94. <version>4.3.7.RELEASEversion>
    95. dependency>
    96. <dependency>
    97. <groupId>org.springframeworkgroupId>
    98. <artifactId>spring-expressionartifactId>
    99. <version>4.3.7.RELEASEversion>
    100. dependency>
    101. <dependency>
    102. <groupId>org.springframeworkgroupId>
    103. <artifactId>spring-aopartifactId>
    104. <version>4.3.7.RELEASEversion>
    105. dependency>
    106. <dependency>
    107. <groupId>org.springframeworkgroupId>
    108. <artifactId>spring-aspectsartifactId>
    109. <version>4.3.7.RELEASEversion>
    110. dependency>
    111. <dependency>
    112. <groupId>org.aspectjgroupId>
    113. <artifactId>aspectjrtartifactId>
    114. <version>1.8.13version>
    115. dependency>
    116. <dependency>
    117. <groupId>org.aspectjgroupId>
    118. <artifactId>aspectjweaverartifactId>
    119. <version>1.8.13version>
    120. dependency>
    121. <dependency>
    122. <groupId>aopalliancegroupId>
    123. <artifactId>aopallianceartifactId>
    124. <version>1.0version>
    125. dependency>
    126. <dependency>
    127. <groupId>org.springframeworkgroupId>
    128. <artifactId>spring-jdbcartifactId>
    129. <version>4.3.7.RELEASEversion>
    130. dependency>
    131. <dependency>
    132. <groupId>org.springframeworkgroupId>
    133. <artifactId>spring-txartifactId>
    134. <version>4.3.7.RELEASEversion>
    135. dependency>
    136. <dependency>
    137. <groupId>org.springframeworkgroupId>
    138. <artifactId>spring-webartifactId>
    139. <version>4.3.7.RELEASEversion>
    140. dependency>
    141. <dependency>
    142. <groupId>org.springframeworkgroupId>
    143. <artifactId>spring-webmvcartifactId>
    144. <version>4.3.7.RELEASEversion>
    145. dependency>
    146. <dependency>
    147. <groupId>org.springframeworkgroupId>
    148. <artifactId>spring-testartifactId>
    149. <version>4.3.7.RELEASEversion>
    150. dependency>
    151. dependencies>

    基本思路

    建立spring框架

    1.创建实体

    1. public class user implements Serializable {
    2. private Integer id;
    3. private String name;
    4. private String gender;
    5. private String email;
    6. @Override
    7. public String toString() {
    8. return "user{" +
    9. "id=" + id +
    10. ", name='" + name + '\'' +
    11. ", gender='" + gender + '\'' +
    12. ", email='" + email + '\'' +
    13. '}';
    14. }
    15. public Integer getId() {
    16. return id;
    17. }
    18. public void setId(Integer id) {
    19. this.id = id;
    20. }
    21. public String getName() {
    22. return name;
    23. }
    24. public void setName(String name) {
    25. this.name = name;
    26. }
    27. public String getGender() {
    28. return gender;
    29. }
    30. public void setGender(String gender) {
    31. this.gender = gender;
    32. }
    33. public String getEmail() {
    34. return email;
    35. }
    36. public void setEmail(String email) {
    37. this.email = email;
    38. }
    39. }

     2.创建DAO

    1. public interface userDao {
    2. public List findAll();
    3. }

    3.userService的接口

    1. package club.twzw.service;
    2. import club.twzw.bean.User;
    3. import org.springframework.stereotype.Service;
    4. import java.util.List;
    5. public interface UserService {
    6. public List findAll();
    7. }

    4.实现userServiceImpl,并给userServiceImpl 起别名userService

    1. @Service("userService")
    2. public class userServiceImpl implements userService {
    3. @Override
    4. public List findAll() {
    5. System.out.println("查询所有用户。。。");
    6. return null;//service.findAll();
    7. }
    8. }

    5.在resources文件下创建文件applicationContext.xml

    1. "1.0" encoding="UTF-8"?>
    2. <beans xmlns="http://www.springframework.org/schema/beans"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xmlns:context="http://www.springframework.org/schema/context"
    5. xmlns:aop="http://www.springframework.org/schema/aop"
    6. xmlns:tx="http://www.springframework.org/schema/tx"
    7. xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
    8. http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
    9. http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd
    10. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">
    11. <context:component-scan base-package="club.twzw">
    12. <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    13. context:component-scan>
    14. beans>

    6.书写测试方法

    1. @Test
    2. public void testQueryUserList() {
    3. ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
    4. userService service = (userService) ac.getBean("userService"); // 因为给service起了别名,所以通过id的方式获取class
    5. service.findAll();
    6. }

    运行效果:

    建立spring mvc

    在web.xml文件中修改并配置过滤器,中文乱码过滤

    1. "1.0" encoding="UTF-8"?>
    2. <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
    5. version="4.0">
    6. <servlet>
    7. <servlet-name>spring-dispatcherservlet-name>
    8. <servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
    9. <init-param>
    10. <param-name>contextConfigLocationparam-name>
    11. <param-value>classpath:springmvc.xmlparam-value>
    12. init-param>
    13. <load-on-startup>1load-on-startup>
    14. servlet>
    15. <servlet-mapping>
    16. <servlet-name>spring-dispatcherservlet-name>
    17. <url-pattern>/url-pattern>
    18. servlet-mapping>
    19. <filter>
    20. <filter-name>characterEncodingFilterfilter-name>
    21. <filter-class>org.springframework.web.filter.CharacterEncodingFilterfilter-class>
    22. <init-param>
    23. <param-name>encodingparam-name>
    24. <param-value>UTF-8param-value>
    25. init-param>
    26. filter>
    27. <filter-mapping>
    28. <filter-name>characterEncodingFilterfilter-name>
    29. <url-pattern>/url-pattern>
    30. filter-mapping>
    31. web-app>

    在resources文件夹下创建springmvc.xml文件,开启注解扫描,视图解析器以及过滤静态资源和springmvc注解支持

    1. "1.0" encoding="UTF-8"?>
    2. <beans xmlns="http://www.springframework.org/schema/beans"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xmlns:context="http://www.springframework.org/schema/context"
    5. xmlns:mvc="http://www.springframework.org/schema/mvc"
    6. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
    7. <context:component-scan base-package="club.twzw">
    8. <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    9. context:component-scan>
    10. <bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    11. <property name="suffix" value=".jsp"/>
    12. <property name="prefix" value="/WEB-INF/views/"/>
    13. bean>
    14. <mvc:annotation-driven/>
    15. beans>

    书写controller

    1. package club.twzw.controller;
    2. import club.twzw.bean.User;
    3. import club.twzw.service.UserService;
    4. import org.springframework.beans.factory.annotation.Autowired;
    5. import org.springframework.stereotype.Controller;
    6. import org.springframework.ui.Model;
    7. import org.springframework.web.bind.annotation.RequestMapping;
    8. import java.util.List;
    9. @Controller
    10. public class UserController {
    11. @Autowired
    12. private UserService service;
    13. @RequestMapping("/findAll")
    14. public String findAll(Model model){
    15. System.out.println("success");
    16. List all = service.findAll();
    17. model.addAttribute("user",all);
    18. return "list";
    19. }
    20. }

    index.jsp

    1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    2. <html>
    3. <body>
    4. <a href="/findAll">查看所有用户a>
    5. body>
    6. html>

    success.jsp

    1. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    2. <html>
    3. <head>
    4. <title>scuccesstitle>
    5. head>
    6. <body>
    7. <h1>scuccessh1>
    8. body>
    9. html>

    页面如果做成显示,自此已成功添加spring mvc框架

    在整合之前需要明白,我们需要在controller中调用service,最快捷的便是使用依赖注入,而至今使用Tomcat服务器只加载了springmvc.xml文件,并没有applicationContext.xml的加载(也就是spring并没有被加载),所以可以通过监听ServeltContext域对象,在创建时加载spring的配置文件(applicationContext.xml)

    配置监听器

    在web.xml文件下添加listener,context-param设置监听和applicationContext.xml的文件路径

    1. "1.0" encoding="UTF-8"?>
    2. <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
    5. version="4.0">
    6. <<<<------
    7. <listener>
    8. <listener-class>org.springframework.web.context.ContextLoaderListenerlistener-class>
    9. listener>
    10. <<<<------
    11. <context-param>
    12. <param-name>contextConfigLocationparam-name>
    13. <param-value>classpath:applicationContext.xmlparam-value>
    14. context-param>
    15. <servlet>
    16. <servlet-name>spring-dispatcherservlet-name>
    17. <servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
    18. <init-param>
    19. <param-name>contextConfigLocationparam-name>
    20. <param-value>classpath:springmvc.xmlparam-value>
    21. init-param>
    22. <load-on-startup>1load-on-startup>
    23. servlet>
    24. <servlet-mapping>
    25. <servlet-name>spring-dispatcherservlet-name>
    26. <url-pattern>/url-pattern>
    27. servlet-mapping>
    28. <filter>
    29. <filter-name>characterEncodingFilterfilter-name>
    30. <filter-class>org.springframework.web.filter.CharacterEncodingFilterfilter-class>
    31. <init-param>
    32. <param-name>encodingparam-name>
    33. <param-value>UTF-8param-value>
    34. init-param>
    35. filter>
    36. <filter-mapping>
    37. <filter-name>characterEncodingFilterfilter-name>
    38. <url-pattern>/url-pattern>
    39. filter-mapping>
    40. web-app>

    这样我们就可以使用依赖注入了

    使用依赖注入并从新发布,如果正常,就可以在控制台看到两句话

    1. package club.twzw.controller;
    2. import club.twzw.service.impl.UserService;
    3. import org.springframework.beans.factory.annotation.Autowired;
    4. import org.springframework.stereotype.Controller;
    5. import org.springframework.web.bind.annotation.RequestMapping;
    6. @Controller
    7. public class UserController {
    8. @Autowired
    9. private UserService service;
    10. @RequestMapping("/findAll")
    11. public String findAll(){
    12. System.out.println("success");
    13. service.findAll();
    14. return "success";
    15. }
    16. }

    这样spring mvc 就已经整合完毕了

    建立mybatis环境

    在UserDao中使用注解查询

    1. package club.twzw.dao;
    2. import club.twzw.bean.User;
    3. import org.apache.ibatis.annotations.Insert;
    4. import org.apache.ibatis.annotations.Select;
    5. import org.springframework.stereotype.Repository;
    6. import java.util.List;
    7. @Repository
    8. public interface UserDao {
    9. @Select("select * from user")
    10. public List findAll();
    11. }

    创建mybatis的核心配置文件mysqlConfig.xml

    1. "1.0" encoding="UTF-8" ?>
    2. configuration
    3. PUBLIC "-//mybatis.org.//DTD Config 3.0//EN"
    4. "http://mybatis.org/dtd/mybatis-3-config.dtd">
    5. <configuration>
    6. <environments default="mysql">
    7. <environment id="mysql">
    8. <transactionManager type="JDBC"/>
    9. <dataSource type="POOLED">
    10. <property name="driver" value="com.mysql.jdbc.Driver"/>
    11. <property name="url" value="jdbc:mysql://xx.xx.xx:3306/learn?useSSL=false"/>
    12. <property name="username" value="learn"/>
    13. <property name="password" value="123456"/>
    14. dataSource>
    15. environment>
    16. environments>
    17. <mappers>
    18. <package name="mapper"/>
    19. mappers>
    20. configuration>

    书写测试方法

    1. @Test
    2. public void test() throws IOException {
    3. InputStream resourceAsStream = Resources.getResourceAsStream("mysqlConfig.xml");
    4. SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
    5. SqlSessionFactory factory = builder.build(resourceAsStream);
    6. SqlSession session = factory.openSession(true);
    7. UserDao mapper = session.getMapper(UserDao.class);
    8. List all = mapper.findAll();
    9. for (User user : all) {
    10. System.out.println(user);
    11. }
    12. }

    输出结果:

    说明了mybatis可用,那么可以开始整合了
    整理mybatis,思路相同,同样使用依赖注入,将mysqlConfig.xml添加到容器中,并自动注入

    在spring的文件中整合mybatis,配置连接池,factory,dao所在的包,此时有无将mysqlConfig.xml都不重要!

    1. "1.0" encoding="UTF-8"?>
    2. <beans xmlns="http://www.springframework.org/schema/beans"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xmlns:context="http://www.springframework.org/schema/context"
    5. xmlns:aop="http://www.springframework.org/schema/aop"
    6. xmlns:tx="http://www.springframework.org/schema/tx" xmlns:mvc="http://www.springframework.org/schema/mvc"
    7. xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
    8. http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
    9. http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd
    10. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
    11. <context:component-scan base-package="club.twzw">
    12. <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    13. context:component-scan>
    14. <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
    15. <property name="driverClass" value="com.mysql.jdbc.Driver"/>
    16. <property name="jdbcUrl" value="jdbc:mysql://xx.xx.xx.xx:3306/learn?useSSL=false"/>
    17. <property name="user" value="learn"/>
    18. <property name="password" value="123456"/>
    19. bean>
    20. <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    21. <property name="dataSource" ref="dataSource"/>
    22. bean>
    23. <bean id="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    24. <property name="basePackage" value="club.twzw.dao"/>
    25. bean>
    26. beans>

    使用依赖注入

    在dao类上添加@Repository注解

    1. @Repository
    2. public interface UserDao {
    3. @Select("select * from user")
    4. public List findAll();
    5. }

    在serviceimpl中注入接口

    1. package club.twzw.service.impl;
    2. import club.twzw.bean.User;
    3. import club.twzw.dao.UserDao;
    4. import club.twzw.service.UserService;
    5. import org.springframework.beans.factory.annotation.Autowired;
    6. import org.springframework.stereotype.Service;
    7. import java.util.List;
    8. @Service("UserService")
    9. public class UserServiceImpl implements UserService {
    10. @Autowired
    11. private UserDao dao;
    12. public List findAll() {
    13. System.out.println("查询所有用户。。。");
    14. return dao.findAll();
    15. }
    16. }

    修改controllerfindAll方法

    1. package club.twzw.controller;
    2. import club.twzw.bean.User;
    3. import club.twzw.service.impl.UserService;
    4. import org.springframework.beans.factory.annotation.Autowired;
    5. import org.springframework.stereotype.Controller;
    6. import org.springframework.ui.Model;
    7. import org.springframework.web.bind.annotation.RequestMapping;
    8. import java.util.List;
    9. @Controller
    10. public class UserController {
    11. @Autowired
    12. private UserService service;
    13. @RequestMapping("/findAll")
    14. public String findAll(Model model){
    15. System.out.println("success");
    16. List all = service.findAll();
    17. model.addAttribute("user",all);
    18. return "list";
    19. }
    20. }

    添加list.jsp

    1. <%--
    2. Created by IntelliJ IDEA.
    3. User: Administrator
    4. Date: 2019/10/29
    5. Time: 21:07
    6. To change this template use File | Settings | File Templates.
    7. --%>
    8. <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    9. <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    10. <html>
    11. <head>
    12. <title>Titletitle>
    13. head>
    14. <body>
    15. <c:forEach items="${user}" var="user">
    16. <tr>
    17. <td>${user.id}td>
    18. <td>${user.name}td>
    19. <td>${user.gender}td>
    20. <td>${user.email}td>
    21. tr>
    22. c:forEach>
    23. body>
    24. html>

    实现访问

    实现插入

    controller

    1. @RequestMapping("/save")
    2. public String save(Model model){
    3. System.out.println("success");
    4. User u = new User();
    5. u.setEmail("184611875@qq.com");
    6. u.setGender("男");
    7. u.setName("comi");
    8. boolean b = service.Save(u);
    9. System.out.println(b);
    10. return "success";
    11. }

    UserService

    1. package club.twzw.service;
    2. import club.twzw.bean.User;
    3. import org.springframework.stereotype.Service;
    4. import java.util.List;
    5. public interface UserService {
    6. public List findAll();
    7. public boolean Save(User u);
    8. }

    UserServiceImpl

    1. package club.twzw.service.impl;
    2. import club.twzw.bean.User;
    3. import club.twzw.dao.UserDao;
    4. import club.twzw.service.UserService;
    5. import org.springframework.beans.factory.annotation.Autowired;
    6. import org.springframework.stereotype.Service;
    7. import java.util.List;
    8. @Service("UserService")
    9. public class UserServiceImpl implements UserService {
    10. @Autowired
    11. private UserDao dao;
    12. public List findAll() {
    13. System.out.println("查询所有用户。。。");
    14. return dao.findAll();
    15. }
    16. @Override
    17. public boolean Save(User u) {
    18. return dao.Save(u);
    19. }
    20. }

    dao

    1. package club.twzw.dao;
    2. import club.twzw.bean.User;
    3. import org.apache.ibatis.annotations.Insert;
    4. import org.apache.ibatis.annotations.Select;
    5. import org.springframework.stereotype.Repository;
    6. import java.util.List;
    7. @Repository
    8. public interface UserDao {
    9. @Select("select * from user")
    10. public List findAll();
    11. @Insert("insert into user (name,gender,email) values(#{name},#{gender},#{email})")
    12. public boolean Save(User u);
    13. }

    输出:

     访问路径(http://localhost:8080/ssmWork_war_exploded/save)
    这样我们的ssm框架就完成整合了,可以去干大事了!!!!
    码云开源库:码云链接


    本文参考自:手把手教你 SSM 整合(非常非常非常非常非常详细)_风吹走了我脑壳后面的秀发的博客-CSDN博客_ssm整合

  • 相关阅读:
    力扣(LeetCode)878. 第 N 个神奇数字(C++)
    龙蜥anolis8.9安装hadoop3.3.6伪分布环境
    gitlab使用简介
    CFD模拟笔记
    【LeetCode】面试题 17.19. 消失的两个数字
    Python学习笔记-python基础语法-字面量,注释,变量,数据类型,数据类型转换,标识符,运算符,字符串
    路径规划算法 - 求解最短路径 - Dijkstra(迪杰斯特拉)算法
    论文阅读笔记(三)——有监督解耦+信息瓶颈
    【WebService】C#搭建的标准WebService接口,在使ESB模版作为参数无法获取参数数据
    VSCode远程调试python
  • 原文地址:https://blog.csdn.net/qzc70919700/article/details/128108314