众所周知,eclipse由于免费,各方面的方便程度确实不如idea,但是这时候老板偏偏让你用eclipse运行ssm项目,咱还是得会呀,卷死那些不会的!
先初始化一个dynamic web project ,在这里我就遇到了我的第一个bug。因为我没有这个所谓的动态web工程,不过还好,略微一百度,就解决了。

  1. 查看版本号。Help->About Eclipse IDE


    我的版本号是e.20.0,划重点,因为强制要求下载的要和自己版本一样。
    在Help->Install New SoftWare中搜索 Oxygen,然后一系列next全安装上。
  2. 在eclipse marketplcae 里面把关于Spring的三个插件全部下载上…其实我也不知道有啥用,但是下着呗,万一嘞。

都知道eclipse 下载的有多慢,我等的很无语,甚至都在思考为什么eclipse为什么打开内置网页可以这么慢,没有缓存吗?为Eclipse以后可以快一点而学习ssm’项目?
3.然后这时候基本上就有一个Dynamic web project的选项,没找到的在other里面找找,new一下子,随便起个名字。
这是大致的工程目录,可能有不同,因为我删了一点,但是本质一些就行,有web目录,也有java目录。记得有些文件要左键->build path->as a source folder.

4.web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"><display-name>MybatisTestSSM</display-name><!-- // spring configure needer for ContextLoaderListener  -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<!-- BootStraps the root web application context before servlet -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener><!-- springMVC配置 --><!-- The front controller of the spring web application , res --><servlet><servlet-name>spring</servlet-name><servlet-class>org.springframe.web.servlet.DispatcherServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><!-- map all requests to the DispatcherServlet for handling  --><servlet-mapping><servlet-name>spring</servlet-name><url-pattern>/</url-pattern></servlet-mapping>
</web-app>

注意:Spring和SpringMVC中的servlet-name应相同

SpringMVC的配置文件spring-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:context="http://www.springframework.org/schema/context"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.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd"         ><!-- --><!-- SpringMVC controll all websites  jump logic--><!-- 只扫描控制器 --><context:component-scan base-package="com.company" use-default-filters="false"><context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"></context:include-filter></context:component-scan><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/pages"></property><property name="suffix" value=".jsp"></property></bean><mvc:annotation-driven></mvc:annotation-driven><mvc:default-servlet-handler/>
</beans>

Spring的配置文件applicationContext.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:context="http://www.springframework.org/schema/context"xmlns:mybatis-spring="http://mybatis.org/schema/mybatis-spring"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsdhttp://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring-1.2.xsd"><!-- Spring manage all services 除了控制器的其他组件-->
<context:component-scan base-package="com.company"><context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan><context:property-placeholder location="classpath:dbconfig.properties"/>
<!-- Spring控制业务逻辑 数据源 事务控制 aop-->
<bean id="datasource" class="com.mchange.v2.c3p0.ComboPooledDataSource"><property name="jdbcUrl" value="${jdbc.url}"/><property name="user" value="${jdbc.username}"></property>
<property name="password" value="${jdbc.password}"></property>
<property name="driverClass" value="${jdbc.driver}"> </property>
</bean>
<!-- 事务管理器:使用事务管理器管理数据库-->
<bean id="DataSourceTransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="datasource"> </property>
</bean>
<!-- 开启基于注解的事务-->
<tx:annotation-driven transaction-manager="DataSourceTransactionManager"/><!-- create sqlSessionFactory-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="datasource"></property> <property name="configLocation" value="classpath:mybatis-config.xml"></property><property name="mapperLocations" value="classpath:mybatis/mapper/*.xml"></property></bean>
<!-- 扫描所有mapper接口的实现,让mapper能够自动注入-->
<mybatis-spring:scan base-package="com.company.dao"></mybatis-spring:scan><!-- comvbined with mybatis
-->
</beans>

这里有一个小bug,一般情况下,在.xml页面下应该还有一个namespace,可以选择引入的命名空间,但是我没有,我只有design和source,我略微百度了一下,说是要下载sts工具,废了很大劲头的终于下载了,但是他妈的还是没有这个所谓的namespace。我很无语。
因为这个sts工具需要与eclipse版本对应,不同版本的sts还不同(这无语的设计…),而且还没有一个完整的页面记录了所有版本的sts工具(或许我没搜到,别人放上去的页面都404了)。而且下载的后缀是update.zip,我用别的博主的方法,获取最新版本的超链接后更改到自己的版本上,但是一直404,可能是根本没有这个版本,反正很无语,我建议如果下载sts工具,直接百度自己eclipse对应的sts工具,这样比自己改来改去改了个404要靠谱,多搜几个网页肯定有,我是这个方法获取的。我的版本是e4.20.0。
链接:https://pan.baidu.com/s/1nfB3iYo0ZuC9cXFOw_rdnA
提取码:9lba
直接下载后不用解压,在install new software中离线打开再一顿next即可。
但是下载了还是没有namespace,可无语我当时的心情,但是有总比没有好吧…
不过也没事,只不过namespace我要一个一个引,还不算太关键。

补(2021.11.6):

引入成功了,具体还是在于sts工具和eclipse marketplace的三个关于spring的插件,下载成功后 模块处于WEB 在file association中设置xml的默认格式为spring config.那个就可
如果eclipse下载速度太慢,建议更改镜像而不是干等,改成国内镜像,稍微一百度就有了。

找到namespace设置了,右键项目点properties

mybatis-config.xml mybatis全局配置文件

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><properties resource="dbconfig.properties"></properties><settings><setting name="mapUnderscoreToCamelCase" value="true"></setting><setting name="cacheEnabled" value="true"></setting></settings><typeAliases><typeAlias type="com.company.mybatis.bean.Employee"alias="emp"></typeAlias><!-- 默认别名为类名,可以使用alias属性值设置 --><!-- 对于同一个包下的多个文件批量起别名 默认为类名 --><package name='com.company.mybatis.bean'></package><!-- 如果包下的包下的文件与包下的文件聪明 可以使用@Alias注解来起别名 --></typeAliases><databaseIdProvider type="DB_VENDOOR"><property name="MySQL" value="mysql" /><property name="Oracle" value="oracle" /><property name="SQL Server" value="sql server" /></databaseIdProvider></configuration>

dbconfig.properties 数据库的相关配置

jdbc.url=jdbc:mysql://localhost:3306/test
jdbc.username=root
jdbc.password=88888888
jdbc.driver=com.mysql.jdbc.Driver

配置文件OK了,接下来就是写三层代码了。

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>首页</title>
</head>
<body>
<a href="getEmp">查看列表</a>
</body>
</html>

首页被控制器拦截后,进入index.jsp页面

package com.company.controller;
@Controller
public class EmployeeController {@AutowiredEmployeeService service;
@RequestMapping("/")
public String index() {return "index";
}   @RequestMapping("getEmp")public String getEmp(Map<String,Object> map) {List<Employee> list = service.getEmps();map.put("emp", list);return "list"           }}

sevice层方法

@Service
public class EmployeeService {@Autowiredprivate EmployeeMapper mapper;public List<Employee> getEmps() {return mapper.getEmp(); }
}

dao层接口

package com.company.dao;import java.util.List;import com.company.bean.Employee;
@Repository
public interface EmployeeMapper {public List<Employee> getEmp();}

对应的xml接口实现类

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- namespace:名称空间 id:唯一标识 resultType:返回值类型,查询记录封装的类型 #{id}从传递过来的参数中取出id public Employee getEmpById(Integer id); -->
<mapper namespace="com.company.mybatis.dao.EmployeeMapper"><!-- 指定为接口的全类名 --><select  id="getEmp" resultType="list">select * from tbl_employee
</select>
</mapper>

对应的Employee方法类

package com.company.bean;import java.io.Serializable;public class Employee implements Serializable{/*** */private static final long serialVersionUID = 1L;private Integer id;private String lastName;private String email;private String gender;//alt+shift+spublic Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getLastName() {return lastName;}public void setLastName(String lastName) {this.lastName = lastName;}public String getEmail() {return email;}public Employee(Integer id, String lastName, String email, String gender) {super();this.id = id;this.lastName = lastName;this.email = email;this.gender = gender;}public void setEmail(String email) {this.email = email;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}@Overridepublic String toString() {return "Employee [id=" + id + ", lastName=" + lastName + ", email=" + email + ", gender=" + gender + "]";}}

运行的时候遇到了第三个bug–>>Tomcat程序启动不起来。报错信息模糊不清,我当时可能也犯困了,闷着头找了可多,都没找到点,睡觉去了。
第二天清醒了,看了看console,他妈的,缘来问题在console输出,我傻逼了。
-Djava.endorsed.dirs=D:\Tomcat 9.0\endorsed is not supported. Endorsed standards and standalone APIs
in modular form will be supported via the concept of upgradeable modules.
意思就是我的Tomcat版本和我的jdk版本不对应,因此不行。他妈的,又是版本问题。然后就自己找配置。
windows=>properties=>Server=>Runtime Environment这是Tomcat

windows=>properties=>Java=>Installed JRES

windows=>properties=>Java=>compiler

我修改过了,jdk8和Tomcat9v是可以的,但是我最开始配置的是jdk16 很无语。
去官网又下jdk8,然后配置一下,就可以了,但是有个问题就是…java下载后会有个弹窗询问你是否允许自更新,妈的,不允许!我应该是之前以为电脑管家又自作主张把项目当病毒删除,所以没看就点确定了。家人们,不要允许自更新。
一系列操作后,我还是不行,运行的时候报错方式确实变了,但是会提醒我java 9 is not supported.java9? tmd哪来的java9.
来来来,右键项目,打开properties,点击java,点开java Complier,哈哈,他妈的,项目自己给自己配了个java9,一整个无语住了。改呗,顺便把java build path中的java9移除,换上自己的。
好了,一顿操作猛如虎,这样Tomcat就可以咯。对了对了,还有最后一个配置。双击server

把location改成自己的,deploy path改一改,ok。开始开心的ssm吧。

《开心的ssm》
全他妈报错…
找到报错原因了,一般都在第一个caused by 吃饭去了家人们

eclipse整合ssm运行初体验相关推荐

  1. Felgo之初体验--安装与运行

    前言 上一篇文章中介绍了Felgo的用途,大致知道了Felgo可以用来干些什么,在本篇中我们介绍下Felgo的安装,以及创建我们的第一个Felgo程序. 软件下载 首先我们在官网下载相应平台的安装包, ...

  2. 【云原生】 初体验阿里云Serverless应用引擎SAE(三),挂载配置文件使应用的配置和运行的镜像解耦

    目录 一.前言 二.SAE配置 1.创建配置项 2.配置SAE Nginx服务 效果 1.[云原生] 初体验阿里云Serverless应用引擎SAE(一),部署Nginx服务 2.[云原生] 初体验阿 ...

  3. 1.TypeScript入门之TS初体验(运行TS代码)

    Ⅰ.TypeScript介绍 1.1 TypeScript是什么 TypeScript(简称TS)是JavaScript的超集(JS有的TS都有). TypeScript = Type + JavaS ...

  4. Apache Solr 9.1-(一)初体验单机模式运行

    Apache Solr 9.1-(一)初体验单机模式运行 Solr是一个基于Apache Lucene的搜索服务器,Apache Lucene是开源的.基于Java的信息检索库,Solr能为用户提供无 ...

  5. 【手把手教你整合SSM项目并且完成入门项目到成功运行!!!】

    整合ssm框架的步骤 一. 准备工作:创建一个存放学生数据的数据库表 CREATE DATABASE `ssm_student`; USE `ssm_student`; DROP TABLE IF E ...

  6. 蓝魔i11pro运行linux,蓝魔i11 pro平板电脑上手初体验(上篇)

    原标题:蓝魔i11 pro平板电脑上手初体验(上篇) 作为英特尔全球首家平板合作伙伴的蓝魔在2014年接连发布了多款平板电脑,系统版本涉及Android及Windows,还推出了双系统版本平板电脑i9 ...

  7. 用鸿蒙跑了个 “hello world”!鸿蒙开发初体验

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 来源 | https://my.oschina.net/u ...

  8. Spring环境搭建,IoC容器初体验~

    由于最近的任务是关于IoC配置文件格式的转换,所以需要从Spring的IoC容器开始学起,今天根据网上的介绍搭建了Spring环境,并对其IoC容器进行了初体验.文章中涉及到的软件以及推荐的一本关于S ...

  9. Maven整合SSM框架(maven+spring+springmvc+mybatis)

    啊哈,终于到了用Maven整合SSM这个扑街含家产了.弄了整整一天才跑通.Mybatis的配置有些繁琐,跟之前学习的那个有点出去,加上Eclipse的Spring工具没有弄,配置的时候没有提示被搞蒙圈 ...

最新文章

  1. java怎样生成文档_java中如何创建文档中心的目录
  2. 中国爬虫违法违规案例汇总
  3. springmvc 文件上传和拦截器
  4. 两台linux之间实现共享文件夹挂载实例,linux之间实现共享文件夹挂载实力
  5. 【Python】忘记登录密码?遍历数字字母组合密码+模拟提交表单
  6. 2020云栖大会,宜搭发布专业开发者能力,助力政企数字化转型——阿里云开发者社区
  7. Rancher 2.5 正式发布,多项重大更新来袭!
  8. 工作流实战_02_flowable 流程模板导入
  9. 补习系列(1)-springboot项目基础搭建课
  10. 补丁KB2999226纯净版下载地址
  11. 如何快速调整图片亮度和对比度?
  12. 【STM32】时钟系统及其结构原理
  13. DCPP系列衍生物Cz-DCPP,Cz-Ph-DCPP,DPA-DCPP,DPA-Ph-DCPP,DMAC-DCPP,DMAC-Ph-DCPP
  14. Arcgis 10.2坡度分析
  15. 学校学生计算机配备标准,规模控制在900人至5000人 每百名学生应有15台电脑
  16. Python_文本分析入门_SnowNLP(1)
  17. 泽塔云制胜秘诀:场景化破局超融合云计算市场
  18. 卡那霉素(Kanamycin偶联卵清白蛋白 (KAN-OVA)
  19. cpu_only openpose Windows环境搭建
  20. python看门狗(watchdog)、多线程、实现文件夹实时监听、日志输出、备份

热门文章

  1. 测试app是否有流量消耗
  2. 小米 M365有致命漏洞!骇客能轻易远端控制
  3. 森林防火监控高集成化设备相比普通设备有哪些显著优势?
  4. Windows ADK使用场景之一:应用程序兼容性工具。解决普通域用户执行软件时,提示要管理员账号与密码问题!
  5. JAVA实现的基于内容的图像检索系统设计与实现
  6. 交换机的基本配置之用户远程登陆配置教程
  7. Proteus8.9 VSM Studio WINAVR编译器仿真ATmega16系列a17_正反转可控直流电机
  8. java生成的验证码乱码
  9. Mac快捷输入iPhone短信验证码
  10. 用tushare包开发的股票分析脚本