本文章教程手把手带你玩转ssm项目,曾经博主也是小白经过数个日夜终于将ssm玩透彻了。现在博主免费推出了【每晚玩转一套ssm项目】这一系列专栏,带你手把手上手ssm。请大家关注并监督我每晚更新哦~这个过程我也会从新人的角度总结出易错点并写道文章的最后。博主也是一枚在校大学生,现在带学弟学妹们入门ssm项目。在此之前你需要一定的计算机操作基础,现在我将带你,不需要写一行代码,从0到1搭建一个项目。
对身份进行校验
不选择身份无法登录。
注册成功
所谓工欲善其事必先利其器,首先你需要准备如下的工具。
IntelliJ IDEA 2023.2.2,Navicat Premium 15、微信开发者工具、HBuilderX、vscode等
接着准备运行环境
我开发使用的电脑是笔记本,如下是我的配置哦~
这是我的java版本,建议搭建使用jdk8.0
mysql使用5.7x版本。到这里恭喜你运行环境就全部搭建完毕了。接下来可以畅快的开始跑ssm项目了
首先导入数据库springbootwk338.db
出现以下文字,说明数据库导入成功。
刷新数据库,,,即可看到数据表
到这里说明数据库导入成功了。
启动!qidon!!
点击opne打开项目吻技安,,选择模块,,点击ok如下如图
接着选择项目类型maven Project
项目导入完毕整个界面是这样的。
修改application.yml配置
spring:
datasource:
driverClassName: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/springbootwk338?useUnicode=true&characterEncoding=utf-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8
username: root
password: 123456
与我的保持一致就行。(安装数据库的时候记得修改数据库账号密码为root/123456)
点击小三角运行项目
控制出现以下内容,说明项目运行成功了
/*
* 提示:该行代码过长,系统自动注释不进行高亮。一键复制会移除系统注释
* "D:\softinstall\JetBrains\IntelliJ IDEA 2023.2.2\jbr\bin\java.exe" -XX:TieredStopAtLevel=1 -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true "-Dmanagement.endpoints.jmx.exposure.include=*" "-javaagent:D:\softinstall\JetBrains\IntelliJ IDEA 2023.2.2\lib\idea_rt.jar=55308:D:\softinstall\JetBrains\IntelliJ IDEA 2023.2.2\bin" -Dfile.encoding=UTF-8 -classpath F:\demo\springbootwk338\target\classes;C:\Users\Cat00011cat\.m2\repository\org\springframework\boot\spring-boot-starter-web\2.2.2.RELEASE\spring-boot-starter-web-2.2.2.RELEASE.jar;C:\Users\Cat00011cat\.m2\repository\org\springframework\boot\spring-boot-starter\2.2.2.RELEASE\spring-boot-starter-2.2.2.RELEASE.jar;C:\Users\Cat00011cat\.m2\repository\org\springframework\boot\spring-boot\2.2.2.RELEASE\spring-boot-2.2.2.RELEASE.jar;C:\Users\Cat00011cat\.m2\repository\org\springframework\boot\spring-boot-starter-logging\2.2.2.RELEASE\spring-boot-starter-logging-2.2.2.RELEASE.jar;C:\Users\Cat00011cat\.m2\repository\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar;C:\Users\Cat00011cat\.m2\repository\ch\qos\logback\logback-core\1.2.3\logback-core-1.2.3.jar;C:\Users\Cat00011cat\.m2\repository\org\apache\logging\log4j\log4j-to-slf4j\2.12.1\log4j-to-slf4j-2.12.1.jar;C:\Users\Cat00011cat\.m2\repository\org\apache\logging\log4j\log4j-api\2.12.1\log4j-api-2.12.1.jar;C:\Users\Cat00011cat\.m2\repository\org\slf4j\jul-to-slf4j\1.7.29\jul-to-slf4j-1.7.29.jar;C:\Users\Cat00011cat\.m2\repository\jakarta\annotation\jakarta.annotation-api\1.3.5\jakarta.annotation-api-1.3.5.jar;C:\Users\Cat00011cat\.m2\repository\org\yaml\snakeyaml\1.25\snakeyaml-1.25.jar;C:\Users\Cat00011cat\.m2\repository\org\springframework\boot\spring-boot-starter-json\2.2.2.RELEASE\spring-boot-starter-json-2.2.2.RELEASE.jar;C:\Users\Cat00011cat\.m2\repository\com\fasterxml\jackson\core\jackson-databind\2.10.1\jackson-databind-2.10.1.jar;C:\Users\Cat00011cat\.m2\repository\com\fasterxml\jackson\core\jackson-annotations\2.10.1\jackson-annotations-2.10.1.jar;C:\Users\Cat00011cat\.m2\repository\com\fasterxml\jackson\core\jackson-core\2.10.1\jackson-core-2.10.1.jar;C:\Users\Cat00011cat\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.10.1\jackson-datatype-jdk8-2.10.1.jar;C:\Users\Cat00011cat\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.10.1\jackson-datatype-jsr310-2.10.1.jar;C:\Users\Cat00011cat\.m2\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.10.1\jackson-module-parameter-names-2.10.1.jar;C:\Users\Cat00011cat\.m2\repository\org\springframework\boot\spring-boot-starter-tomcat\2.2.2.RELEASE\spring-boot-starter-tomcat-2.2.2.RELEASE.jar;C:\Users\Cat00011cat\.m2\repository\org\apache\tomcat\embed\tomcat-embed-core\9.0.29\tomcat-embed-core-9.0.29.jar;C:\Users\Cat00011cat\.m2\repository\org\apache\tomcat\embed\tomcat-embed-el\9.0.29\tomcat-embed-el-9.0.29.jar;C:\Users\Cat00011cat\.m2\repository\org\apache\tomcat\embed\tomcat-embed-websocket\9.0.29\tomcat-embed-websocket-9.0.29.jar;C:\Users\Cat00011cat\.m2\repository\org\springframework\boot\spring-boot-starter-validation\2.2.2.RELEASE\spring-boot-starter-validation-2.2.2.RELEASE.jar;C:\Users\Cat00011cat\.m2\repository\jakarta\validation\jakarta.validation-api\2.0.1\jakarta.validation-api-2.0.1.jar;C:\Users\Cat00011cat\.m2\repository\org\hibernate\validator\hibernate-validator\6.0.18.Final\hibernate-validator-6.0.18.Final.jar;C:\Users\Cat00011cat\.m2\repository\org\jboss\logging\jboss-logging\3.4.1.Final\jboss-logging-3.4.1.Final.jar;C:\Users\Cat00011cat\.m2\repository\com\fasterxml\classmate\1.5.1\classmate-1.5.1.jar;C:\Users\Cat00011cat\.m2\repository\org\springframework\spring-web\5.2.2.RELEASE\spring-web-5.2.2.RELEASE.jar;C:\Users\Cat00011cat\.m2\repository\org\springframework\spring-beans\5.2.2.RELEASE\spring-beans-5.2.2.RELEASE.jar;C:\Users\Cat00011cat\.m2\repository\org\springframework\spring-webmvc\5.2.2.RELEASE\spring-webmvc-5.2.2.RELEASE.jar;C:\Users\Cat00011cat\.m2\repository\org\springframework\spring-aop\5.2.2.RELEASE\spring-aop-5.2.2.RELEASE.jar;C:\Users\Cat00011cat\.m2\repository\org\springframework\spring-context\5.2.2.RELEASE\spring-context-5.2.2.RELEASE.jar;C:\Users\Cat00011cat\.m2\repository\org\springframework\spring-expression\5.2.2.RELEASE\spring-expression-5.2.2.RELEASE.jar;C:\Users\Cat00011cat\.m2\repository\org\mybatis\spring\boot\mybatis-spring-boot-starter\2.1.1\mybatis-spring-boot-starter-2.1.1.jar;C:\Users\Cat00011cat\.m2\repository\org\mybatis\spring\boot\mybatis-spring-boot-autoconfigure\2.1.1\mybatis-spring-boot-autoconfigure-2.1.1.jar;C:\Users\Cat00011cat\.m2\repository\org\mybatis\mybatis\3.5.3\mybatis-3.5.3.jar;C:\Users\Cat00011cat\.m2\repository\org\mybatis\mybatis-spring\2.0.3\mybatis-spring-2.0.3.jar;C:\Users\Cat00011cat\.m2\repository\org\springframework\boot\spring-boot-starter-jdbc\2.2.2.RELEASE\spring-boot-starter-jdbc-2.2.2.RELEASE.jar;C:\Users\Cat00011cat\.m2\repository\com\zaxxer\HikariCP\3.4.1\HikariCP-3.4.1.jar;C:\Users\Cat00011cat\.m2\repository\org\slf4j\slf4j-api\1.7.29\slf4j-api-1.7.29.jar;C:\Users\Cat00011cat\.m2\repository\org\springframework\spring-jdbc\5.2.2.RELEASE\spring-jdbc-5.2.2.RELEASE.jar;C:\Users\Cat00011cat\.m2\repository\org\springframework\spring-tx\5.2.2.RELEASE\spring-tx-5.2.2.RELEASE.jar;C:\Users\Cat00011cat\.m2\repository\mysql\mysql-connector-java\8.0.18\mysql-connector-java-8.0.18.jar;C:\Users\Cat00011cat\.m2\repository\org\apache\shiro\shiro-spring\1.3.2\shiro-spring-1.3.2.jar;C:\Users\Cat00011cat\.m2\repository\org\apache\shiro\shiro-core\1.3.2\shiro-core-1.3.2.jar;C:\Users\Cat00011cat\.m2\repository\commons-beanutils\commons-beanutils\1.8.3\commons-beanutils-1.8.3.jar;C:\Users\Cat00011cat\.m2\repository\org\apache\shiro\shiro-web\1.3.2\shiro-web-1.3.2.jar;C:\Users\Cat00011cat\.m2\repository\com\baomidou\mybatis-plus\2.3\mybatis-plus-2.3.jar;C:\Users\Cat00011cat\.m2\repository\com\baomidou\mybatis-plus-support\2.3\mybatis-plus-support-2.3.jar;C:\Users\Cat00011cat\.m2\repository\com\baomidou\mybatis-plus-core\2.3\mybatis-plus-core-2.3.jar;C:\Users\Cat00011cat\.m2\repository\com\github\jsqlparser\jsqlparser\1.1\jsqlparser-1.1.jar;C:\Users\Cat00011cat\.m2\repository\com\baomidou\mybatis-plus-generate\2.3\mybatis-plus-generate-2.3.jar;C:\Users\Cat00011cat\.m2\repository\com\baomidou\mybatisplus-spring-boot-starter\1.0.5\mybatisplus-spring-boot-starter-1.0.5.jar;C:\Users\Cat00011cat\.m2\repository\org\springframework\boot\spring-boot-autoconfigure\2.2.2.RELEASE\spring-boot-autoconfigure-2.2.2.RELEASE.jar;C:\Users\Cat00011cat\.m2\repository\org\springframework\boot\spring-boot-configuration-processor\2.2.2.RELEASE\spring-boot-configuration-processor-2.2.2.RELEASE.jar;C:\Users\Cat00011cat\.m2\repository\com\google\protobuf\protobuf-java\3.10.0\protobuf-java-3.10.0.jar;C:\Users\Cat00011cat\.m2\repository\org\apache\commons\commons-lang3\3.0\commons-lang3-3.0.jar;C:\Users\Cat00011cat\.m2\repository\javax\validation\validation-api\2.0.1.Final\validation-api-2.0.1.Final.jar;C:\Users\Cat00011cat\.m2\repository\commons-io\commons-io\2.5\commons-io-2.5.jar;C:\Users\Cat00011cat\.m2\repository\cn\hutool\hutool-all\4.0.12\hutool-all-4.0.12.jar;C:\Users\Cat00011cat\.m2\repository\com\alibaba\fastjson\1.2.8\fastjson-1.2.8.jar;C:\Users\Cat00011cat\.m2\repository\com\microsoft\sqlserver\sqljdbc4\4.0\sqljdbc4-4.0.jar;C:\Users\Cat00011cat\.m2\repository\com\microsoft\sqlserver\mssql-jdbc\6.2.0.jre8\mssql-jdbc-6.2.0.jre8.jar;C:\Users\Cat00011cat\.m2\repository\com\baidu\aip\java-sdk\4.4.1\java-sdk-4.4.1.jar;C:\Users\Cat00011cat\.m2\repository\org\json\json\20160810\json-20160810.jar;C:\Users\Cat00011cat\.m2\repository\log4j\log4j\1.2.17\log4j-1.2.17.jar;C:\Users\Cat00011cat\.m2\repository\org\springframework\spring-core\5.2.2.RELEASE\spring-core-5.2.2.RELEASE.jar;C:\Users\Cat00011cat\.m2\repository\org\springframework\spring-jcl\5.2.2.RELEASE\spring-jcl-5.2.2.RELEASE.jar com.SpringbootSchemaApplication
*/
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.2.2.RELEASE)
2025-01-15 17:00:38.142 INFO 31104 --- [ main] com.SpringbootSchemaApplication : Starting SpringbootSchemaApplication on whoami with PID 31104 (F:\demo\springbootwk338\target\classes started by Cat00011cat in F:\demo\springbootwk338)
2025-01-15 17:00:38.145 INFO 31104 --- [ main] com.SpringbootSchemaApplication : No active profile set, falling back to default profiles: default
2025-01-15 17:00:42.038 INFO 31104 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
2025-01-15 17:00:42.045 INFO 31104 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2025-01-15 17:00:42.045 INFO 31104 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.29]
2025-01-15 17:00:42.140 INFO 31104 --- [ main] o.a.c.c.C.[.[.[/springbootwk338] : Initializing Spring embedded WebApplicationContext
2025-01-15 17:00:42.140 INFO 31104 --- [ main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 3913 ms
2025-01-15 17:00:42.298 INFO 31104 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...
2025-01-15 17:00:42.415 INFO 31104 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.
2025-01-15 17:00:43.230 INFO 31104 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path '/springbootwk338'
2025-01-15 17:00:43.236 INFO 31104 --- [ main] com.SpringbootSchemaApplication : Started SpringbootSchemaApplication in 5.424 seconds (JVM running for 6.34)
浏览器打开
http://localhost:8080/springbootwk338/admin/dist/index.html
管理员 abo 密码 abo
修改示例:
<template>
<div>
<div class="container loginIn" style="backgroundImage: url(http://codegen.caihongy.cn/20210507/a12d553d33674f2281ed897476e153d1.jpg)">
<div :class="2 == 1 ? 'left' : 2 == 2 ? 'left center' : 'left right'" style="backgroundColor: rgba(15, 35, 35, 0.2)">
<el-form class="login-form" label-position="left" :label-width="2 == 3 ? '56px' : '0px'">
<div class="title-container"><h3 class="title" style="color: rgba(24, 144, 255, 1)">大型商场应急预案管理系统登录</h3></div>
<div class="title-container"><h3 class="title" style="color: rgba(24, 144, 255, 1)">腾讯云社区菜菜有点菜</h3></div>
<el-form-item :label="2 == 3 ? '用户名' : ''" :class="'style'+2">
<span v-if="2 != 3" class="svg-container" style="color:rgba(24, 144, 255, 1);line-height:35px"><svg-icon icon-class="user" /></span>
<el-input placeholder="请输入用户名" name="username" type="text" v-model="rulesForm.username" />
</el-form-item>
<el-form-item :label="2 == 3 ? '密码' : ''" :class="'style'+2">
<span v-if="2 != 3" class="svg-container" style="color:rgba(24, 144, 255, 1);line-height:35px"><svg-icon icon-class="password" /></span>
<el-input placeholder="请输入密码" name="password" type="password" v-model="rulesForm.password" />
</el-form-item>
<el-form-item v-if="0 == '1'" class="code" :label="2 == 3 ? '验证码' : ''" :class="'style'+2">
<span v-if="2 != 3" class="svg-container" style="color:rgba(24, 144, 255, 1);line-height:35px"><svg-icon icon-class="code" /></span>
<el-input placeholder="请输入验证码" name="code" type="text" v-model="rulesForm.code" />
<div class="getCodeBt" @click="getRandCode(4)" style="height:35px;line-height:35px">
<span v-for="(item, index) in codes" :key="index" :style="{color:item.color,transform:item.rotate,fontSize:item.size}">{{ item.num }}</span>
</div>
</el-form-item>
<el-form-item label="角色" prop="loginInRole" class="role">
<el-radio
v-for="item in menus"
v-if="item.hasBackLogin=='是'"
v-bind:key="item.roleName"
v-model="rulesForm.role"
:label="item.roleName"
>{{item.roleName}}</el-radio>
</el-form-item>
<el-button type="primary" @click="login()" class="loginInBt" style="padding:0;font-size:20px ;border-radius:40px;height:35px;line-height:35px;width:100%;backgroundColor:rgba(24, 144, 255, 1); borderColor:rgba(24, 144, 255, 1); color:rgba(252, 251, 249, 1)">{{'1' == '1' ? '登录' : 'login'}}</el-button>
<el-form-item class="setting">
<div style="color:rgba(30, 144, 255, 1)" class="register" @click="register('yuangong')">注册员工</div>
<!-- <div style="color:rgba(30, 144, 255, 1)" class="reset">修改密码</div> -->
</el-form-item>
</el-form>
</div>
</div>
</div>
</template>
登录代码
具体实现:
/**
* 登录
*/
@IgnoreAuth
@RequestMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
YuangongEntity user = yuangongService.selectOne(new EntityWrapper<YuangongEntity>().eq("yuangonggonghao", username));
if(user==null || !user.getMima().equals(password)) {
return R.error("账号或密码不正确");
}
String token = tokenService.generateToken(user.getId(), username,"yuangong", "员工" );
return R.ok().put("token", token);
}
这段代码是一个员工登录的功能,用户提交用户名、密码和验证码,通过用户名查询数据库验证账号和密码是否正确,如果正确就生成一个 token 返回,表示登录成功;如果账号或密码不正确,就返回错误提示。
在部署项目的过程中按照我的步骤来配置,并不会出错。各位社区同学可以按照我的教程来进行操作,,遇到问题请留言哦~~~
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。