栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringBoot+Vue

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBoot+Vue

SpringBoot+Vue

jdk 1.8

mysql 5.7

vue-cli 安装

npm install -g @vue-cli

npm 设置淘宝镜像加速

npm config set registry https://registry.npm.taobao.org

创建vue项目 vue create 项目名

运行

cd  项目目录

npm run serve

安装elementui

npm i element-ui -S
day 01-Vue项目初始化 HelloView.vue




App.vue




global.css
*{
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}

.ml-5{
	margin-left: 5px;
}
.mr-5{
	margin-right: 5px;
}
.pd-10{
	padding: 10px 0;
}

main.js
import Vue from 'vue'
import App from './App.vue'
import router from './router'
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
import './assets/global.css'


Vue.use(ElementUI);

new Vue({
  router,
  render: h => h(App)
}).$mount('#app')

效果图

day02-SpringBoot项目创建 pom里配置阿里云仓库

    
        nexus-aliyun
        nexus-aliyun
        http://maven.aliyun.com/nexus/content/groups/public/
        
            true
        
        
            false
        
    



    
        public
        aliyun nexus
        http://maven.aliyun.com/nexus/content/groups/public/
        
            true
        
        
            false
        
    

application.yml
server:
  port: 8081
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: localhost:3306/test?serverTimezone=UTC&characterEncoding=utf-8&useSSL=false
    username: 用户名
    password: 密码
  output:
    ansi:
      enabled: ALWAYS
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  global-config:
    db-config:
      logic-delete-field: flag # 全局逻辑删除的实体字段名(since 3.3.0,配置后可以忽略不配置步骤2)
      logic-delete-value: 1 # 逻辑已删除值(默认为 1)
      logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)

Application.java
package com.junchen;



import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

pom.xml


    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.7.0
         
    
    com.junchen
    management
    0.0.1-SNAPSHOT
    management
    
        1.8
    
    
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            com.baomidou
            mybatis-plus-boot-starter
            3.5.2
        
        
            mysql
            mysql-connector-java
            runtime
        
        
            org.projectlombok
            lombok
            true
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
                
                    
                        
                            org.projectlombok
                            lombok
                        
                    
                
            
        
    

    
        
            nexus-aliyun
            nexus-aliyun
            http://maven.aliyun.com/nexus/content/groups/public/
            
                true
            
            
                false
            
        
    

    
        
            public
            aliyun nexus
            http://maven.aliyun.com/nexus/content/groups/public/
            
                true
            
            
                false
            
        
    


MyBatisPlusConfig.java
package com.junchen.config;


import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
@MapperScan("com.junchen.mapper") // 扫描mapper包
public class MyBatisPlusConfig {
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        //分页查询
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        //乐观锁
        interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
        return interceptor;
    }
}

MyMetaObjectHandler.java
package com.junchen.handler;

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;

import java.time.LocalDateTime;

@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
    
    @Override
    public void insertFill(MetaObject metaObject) {
        this.strictInsertFill(metaObject, "createTime", LocalDateTime::now, LocalDateTime.class); // 起始版本 3.3.3(推荐)
        //版本号,更新时候版本号会增加
        this.strictInsertFill(metaObject, "version", () -> 1, Integer.class);
        //逻辑删除 0表示未删除
        this.strictInsertFill(metaObject, "deleted", () -> 0, Integer.class);
    }

    
    @Override
    public void updateFill(MetaObject metaObject) {
        this.strictUpdateFill(metaObject, "updateTime", LocalDateTime::now, LocalDateTime.class); // 起始版本 3.3.3(推荐)
    }
}
MyBatis-Plus代码生成 pom依赖


    com.baomidou
    mybatis-plus-generator
    3.5.1


    org.apache.velocity
    velocity
    1.7

SyS_User
CREATE TABLE management.sys_user
(
    id BIGINT(20) NOT NULL COMMENT '主键ID',
    username VARCHAr(50) NULL DEFAULT NULL COMMENT '用户名',
    password VARCHAr(50) NULL DEFAULT NULL COMMENT '密码',
    salt VARCHAr(50) NULL DEFAULT NULL COMMENT '盐',
	 nickname VARCHAr(50) NULL DEFAULT NULL COMMENT '昵称',
 	email VARCHAr(50) NULL DEFAULT NULL COMMENT '邮箱',
 	phone VARCHAr(50) NULL DEFAULT NULL COMMENT '电话',
    address VARCHAr(255) NULL DEFAULT NULL COMMENT '地址',
    `create_time` datetime DEFAULT NULL,
	`update_time` datetime DEFAULT NULL,
	`version` INT ( 255 ) DEFAULT NULL,
	`deleted` INT ( 255 ) DEFAULT NULL,    
    PRIMARY KEY (id)
)ENGINE = INNODB DEFAULT CHARSET = utf8;
生成器代码
package com.junchen.utils;

import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;

import java.util.Collections;


public class CodeGenerator {

    public static void main(String[] args) {
        generate();
    }

    private static void generate() {
        FastAutoGenerator.create("localhost:3306/management?serverTimezone=UTC&characterEncoding=utf-8&useSSL=false", "用户名", "密码")
                .globalConfig(builder -> {
                    builder.author("SunJunchen") // 设置作者
//                            .enableSwagger() // 开启 swagger 模式
                            .fileOverride() // 覆盖已生成文件

                            .outputDir("C:\Users\sunjunchen\IdeaProjects\management\src\main\java\"); // 指定输出目录
                })
                .packageConfig(builder -> {
                    builder.parent("com.junchen") // 设置父包名
                            .moduleName(null) // 设置父包模块名
                            .pathInfo(Collections.singletonMap(OutputFile.xml, "C:\Users\sunjunchen\IdeaProjects\management\src\main\resources\mapper\")); // 设置mapperXml生成路径
                })
                .strategyConfig(builder -> {
                    builder.entityBuilder().enableLombok();
//                    builder.mapperBuilder().enableMapperAnnotation().build();
                    builder.controllerBuilder().enableHyphenStyle()  // 开启驼峰转连字符
                            .enableRestStyle();  // 开启生成@RestController 控制器
                    builder.addInclude("sys_user") // 设置需要生成的表名
                            .addTablePrefix("t_", "sys_"); // 设置过滤表前缀
                    builder.serviceBuilder().formatServiceFileName("%sService");//去掉IService 的I
                })
//                .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板
                .execute();
    }
}
User.java
package com.junchen.entity;

import com.baomidou.mybatisplus.annotation.*;

import java.io.Serializable;
import java.time.LocalDateTime;

import lombok.Data;
import lombok.Getter;
import lombok.Setter;


@Getter
@Setter
@TableName("sys_user")
public class User implements Serializable {

    private static final long serialVersionUID = 1L;
    
    @TableId(type = IdType.AUTO)
        private Long id;

      
      private String username;

      
      private String password;
    
    private String salt;

      
      private String nickname;

      
      private String email;

      
      private String phone;

      
      private String address;
    
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;

    
    @Version
    @TableField(fill = FieldFill.INSERT)
    private Integer version;

    
    @TableLogic
    @TableField(fill = FieldFill.INSERT)
    private Integer deleted;


}
UserMapper.java
package com.junchen.mapper;

import com.junchen.entity.User;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;


public interface UserMapper extends BaseMapper {

}
UserService.java
package com.junchen.service;

import com.junchen.entity.User;
import com.baomidou.mybatisplus.extension.service.IService;


public interface UserService extends IService {

}

UserServiceImpl.java
package com.junchen.service.impl;

import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.junchen.entity.User;
import com.junchen.mapper.UserMapper;
import com.junchen.service.UserService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.junchen.utils.Md5UUIDSaltUtil;
import org.springframework.stereotype.Service;


@Service
public class UserServiceImpl extends ServiceImpl implements UserService {

}

加盐
package com.junchen.utils;

import org.apache.commons.codec.digest.DigestUtils;


import java.util.UUID;
 
public class Md5UUIDSaltUtil {
    public static String uuid = UUID.randomUUID().toString().replace("-", "");
    //创建md5对象
 
    public static String createMd5Code(String code) {
        return DigestUtils.md5Hex(code);
    }
 
    //进行密码校验
 
    public static boolean checkPassword(String userCode, String dbCode) {
        if (dbCode.equals(createMd5Code(userCode))) {
            return true;
        } else {
            return false;
        }
    }
 
    public static String getUUID() {
        return uuid;
    }
 
    //email + uuid
    public static String getSalt(String email) {
        String salt =email + uuid.substring(0, 5) ;
        return salt;
    }
 
}
day03 User 的 CRUD UserController
package com.junchen.controller;

import com.junchen.entity.User;
import com.junchen.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;


@RestController
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserService userService;

    @PostMapping
    public ResponseEntity saveUser(@RequestBody User user) {
        userService.saveUser(user);
        return ResponseEntity.status(HttpStatus.CREATED).build();
    }
    @PutMapping
    public ResponseEntity updateUser(@RequestBody User user) {
        userService.updateUser(user);
        return ResponseEntity.noContent().build();
    }

}

UserService.java
package com.junchen.service;

import com.junchen.entity.User;
import com.baomidou.mybatisplus.extension.service.IService;


public interface UserService extends IService {

    void saveUser(User user);

    void updateUser(User user);
}

UserServiceImpl.java
package com.junchen.service.impl;

import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.junchen.entity.User;
import com.junchen.mapper.UserMapper;
import com.junchen.service.UserService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.junchen.utils.Md5UUIDSaltUtil;
import org.springframework.stereotype.Service;


@Service
public class UserServiceImpl extends ServiceImpl implements UserService {

    @Override
    public void saveUser(User user) {
        //加盐,并将加过盐的密码 和盐重新存入数据库中
        String salt = Md5UUIDSaltUtil.getSalt(user.getEmail());
        String password = Md5UUIDSaltUtil.createMd5Code(user.getPassword()+salt);
        user.setPassword(password);
        user.setSalt(salt);
        boolean saveFlag = this.save(user);
        if (!saveFlag){
            throw  new RuntimeException("添加失败");
        }
    }

    @Override
    public void updateUser(User user) {
        Long id = user.getId();
        User user1 = this.lambdaQuery().eq(User::getId, id).one();
        if (ObjectUtils.isNotEmpty(user1)){
            this.lambdaUpdate().eq(User::getId,id).update(user);
        }
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1023795.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号