当前位置: 首页 > news >正文

建设考试网站首页新品怎么刷关键词

建设考试网站首页,新品怎么刷关键词,电子商务的网站设计,汉中公司网站建设搭建项目环境创建新项目,选择archetype-webapp,创建一个父项目,该父项目会去管理多个微服务模块(module)项目设置Settings->Editor->File Encoding:Global/Project Encoding 改为UTF-8Default encoding for properties files:默认属性文…

搭建项目环境

  1. 创建新项目,选择archetype-webapp,创建一个父项目,该父项目会去管理多个微服务模块(module)

  1. 项目设置

  • Settings->Editor->File Encoding:Global/Project Encoding 改为UTF-8

  • Default encoding for properties files:默认属性文件编码 改为UTF-8

  • Settings->Build..->Compiler->Java Compiler: Module ,Target bytecode version改为8

  1. 整体删除src目录。这是一个聚合的父项目,所以删了干净一点。

  1. 配置父工程pom.xml,作为聚合其它模块

  • 表明是一个父工程,聚合管理其他模块

<packaging>war</packaging>    改成
<packaging>pom</packaging>
  • 从1.7修改成8

  <properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><!--下面是新增的配置,指定版本--><junit.version>4.12</junit.version><!--说明:使用最新版本log4j,防止安全漏洞--><log4j.version>2.17.2</log4j.version><lombok.version>1.18.20</lombok.version><mysql.version>5.1.47</mysql.version><druid.version>1.1.17</druid.version><mybatis.spring.boot.version>2.2.0</mybatis.spring.boot.version></properties>
  • 删除依赖。因为是父工程,不进行具体依赖。由子工程进行。

<dependencies>及其子标签
  • 删除<build>及其字标签

  • 管理依赖及版本

 <!--使用dependencyManagement管理子项目的依赖和版本。本身仅用于锁定版本,并不引入依赖jar--><dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>2.2.2.RELEASE</version><!--说明:1.<type>pom 和<scope>import 组合使用2.用来解决maven单继承的问题。同时继承SpringBoot项目,和SpringCloud项目--><type>pom</type><scope>import</scope></dependency><!--配置spring-cloud。注意版本与spring-boot之间的对应关系--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>Hoxton.SR1</version><type>pom</type><scope>import</scope></dependency><!--配置spring-boot-cloud-alibaba--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>2.1.0.RELEASE</version><type>pom</type><scope>import</scope></dependency><!--配置mysql,版本引用上面指定的--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql.version}</version></dependency><!--配置druid--><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>${druid.version}</version></dependency><!--配置springboot整合mybatis--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>${mybatis.spring.boot.version}</version></dependency><!--使用的高版本,修复了一些高危漏洞--><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j</artifactId><version>${log4j.version}</version></dependency><!--测试使用--><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>${junit.version}</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>${lombok.version}</version></dependency></dependencies></dependencyManagement>

dependencyManagement细节说明:

1、Maven使用dependencyManagement元素来提供了一种管理依赖版本号的方式。通常在项目<packaging>为POM中使用dependencyManagement元素。

2、使用pom.xml中的dependencyManagement元素能让所有在子项目中引用一个依赖,Maven会沿着父子层次向上走,直到找到一个拥有dependencyManagement元素的项目,然后它就会使用这个dependencyManagement元素中指定的版本号。

3、好处:如果有多个子项目都引用同一样依赖,则可以避免在每个使用的子项目里都声明一个版本号当升级或切换到另一个版本时,只需要在顶层父容器里更新,而不需要分别在子项目的修改:另外如果某个子项目需要另外的一个版本,只需要声明version就可。

4、dependencyManagement里只是声明依赖,并不实现引入,因此子项目需要显示的声明需要用的依赖。

5、如果不在子项目中声明依赖,是不会从父项目中继承下来的;只有在子项目中写了该依赖项,并且没有指定具体版本,才会从父项目中继承该项,并且version和scope都读取自父pom

6、如果子项目中指定了版本号,那么会使用子项目中指定的jar版本


创建会员中心微服务模块-service provider

思路分析/图解

  1. 创建Module & 完成配置

  1. 创建member-service-provider-10000微服务模块【提供会员服务】

  • new Module...->maven->finish

  • 检查该子模块的pom.xml,看parent父项目内容是否正确

  • 检查父项目的pom.xml,看module内容是否正确

b. 子项目pom.xml引入相关依赖

    <dependencies><!--使用版本仲裁--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--说明:starter-actuator是springboot程序的监控系统,可实现系统的健康检测可以通过http://localhost:10000/actuator看到相关的连接和信息--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><!--引入mybatis,整合到springboot--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId></dependency><!--引入druid-spring-boot-starter,这个和druid不一样,因为父项目没有,不指定版本会报错--><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.17</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId></dependency></dependencies>

c.创建 子项目/resources/application.yml

server:port: 10000
spring:application:name: member-service-provider-10000 #配置应用的名称。可以自定义,这儿保持一致了datasource:type: com.alibaba.druid.pool.DruidDataSource #指定使用的数据源url: jdbc:mysql://localhost:3306/furn_ssm?useSSL=true&useUnicode=true&characterEncoding=utf-8username: rootpassword: rootmybatis:mapper-locations: classpath:mapper/*.xml #指定mapper.xml文件位置type-aliases-package: com.stein.springcloud.entity #指明实体类所在包别名,可以通过类名直接引用

d. 创建主启动类

@SpringBootApplication
public class MemberApplication {public static void main(String[] args) {SpringApplication.run(MemberApplication.class,args);}
}
  1. 创建数据库/表

  • 注意表的编码格式:charset=utf8;之前前端新建数据出错,就是这儿没有设置导致的。

CREATE DATABASE e_commerce_center_db
USE e_commerce_center_dbCREATE TABLE member(
id BIGINT NOT NULL AUTO_INCREMENT COMMENT 'id',
`NAME` VARCHAR(64) COMMENT '用户名',
pwd CHAR(32) COMMENT'密码',
mobile VARCHAR(20) COMMENT'手机号码',
email VARCHAR(64) COMMENT'邮箱',
gender TINYINT COMMENT '性别',
PRIMARY KEY (id)
)charset=utf8;INSERT INTO member VALUES
(NULL,'smith',MD5('123'),'123456789000','smith@sohu.com',1);
  1. 创建entity->dao/Mapper.xml->service->controller

  • entity类

  • Member

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Member {private long id;private String name;private String pwd;private String mobile;private String email;private Integer gender;
}
  • Result 返回集

public class Result <T>{private String code;private String msg;private T data;public String getCode() {return code;}public void setCode(String code) {this.code = code;}public String getMsg() {return msg;}public void setMsg(String msg) {this.msg = msg;}public T getData() {return data;}public void setData(T data) {this.data = data;}//    无参构造器public Result(){}//有参构造器public Result(T data){this.data=data;}//成功方法返回-无参public static Result success(){Result result = new Result<>();result.setCode("200");result.setMsg("success");return result;}//    泛型方法public static <T>Result<T> success(T data){Result<T> result = new Result<>(data);result.setCode("200");result.setMsg("success");return result;}//错误-无返回datapublic static Result error(String code,String msg){Result result = new Result<>();result.setCode(code);result.setMsg(msg);return result;}//错误-有返回datapublic static <T> Result<T> error(String code,String msg,T data){Result<T> result = new Result<>(data);result.setCode(code);result.setMsg(msg);return result;}
}
  • Dao层。这个项目使用的是Mybatis(不是Plus版本)

  • 创建接口。注意DAO层的注解在接口

@Mapper
public interface MemberDao {Member queryById(Long id);int addMember(Member member);
}
  • 用xml实现接口

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC"-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--这是Mybatis的头文件。Plus直接在类里面实现的-->
<!--namespace对应实现的类-->
<mapper namespace="com.stein.springcloud.dao.MemberDao"><resultMap id="BaseResultMap" type="Member"><id property="id" column="id" jdbcType="BIGINT"/><id property="name" column="name" jdbcType="VARCHAR"/><id property="pwd" column="pwd" jdbcType="VARCHAR"/><id property="mobile" column="mobile" jdbcType="VARCHAR"/><id property="email" column="email" jdbcType="VARCHAR"/><id property="gender" column="gender" jdbcType="TINYINT"/></resultMap><select id="queryById" parameterType="Long" resultMap="BaseResultMap">select * from `member` where `id`=#{id}</select><insert id="addMember" parameterType="Member" useGeneratedKeys="true" keyProperty="id">insert into `member`(name,pwd,mobile,email,gender) values(#{name},md5(#{pwd}),#{mobile},#{email},${gender})</insert></mapper>
  • 测试

@Slf4j
@SpringBootTest
public class MemberTest {@Resourceprivate MemberDao memberDao;@Testpublic void selectById(){Member member = memberDao.queryById(1l);log.info("member={}",member);}@Testpublic void save(){Member member = new Member(null, "王强", "wangqiang", "13000000000", "wangqiang@soho.cn", 1);int affected = memberDao.addMember(member);log.info("affected={}",affected);}
}
  • service层

  • 创建接口

public interface MemberService {Member queryById(Long id);int addMember(Member member);
}
  • 实现接口。注意service层的注解在实现类

@Service
public class MemberServiceImpl implements MemberService {@Resourceprivate MemberDao memberDao;@Overridepublic Member queryById(Long id) {return memberDao.queryById(id);}@Overridepublic int addMember(Member member) {return memberDao.addMember(member);}
}
  • 测试

@Slf4j
@SpringBootTest
public class MemberTest {@Resourceprivate MemberDao memberDao;@Resourceprivate MemberService memberService;@Testpublic void selectById(){Member member = memberService.queryById(1l);log.info("member={}",member);}@Testpublic void save(){Member member = new Member(null, "王强", "wangqiang", "13000000000", "wangqiang@soho.cn", 1);int affected = memberService.addMember(member);log.info("affected={}",affected);}
}
  • controller层

@RestController
public class MemberController {@Resourceprivate MemberService memberService;@GetMapping("/member/query/{id}")public Result selectById(@PathVariable("id")Long id){Member member = memberService.queryById(id);if(member != null){return Result.success(member);}else{return Result.error("402","id="+id+"的member不存在");}}//表单方式提交的数据,不需要@RequestBody@PostMapping("/member/add")public Result addMember(Member member){int affected = memberService.addMember(member);if(affected>0){return Result.success(member);}else{return Result.error("401","添加member失败");}}
}

4、完成测试

使用postman进行测试。

注意事项和细节

1、我们的前端如果是以json格式来发送添加信息furn,那么我们需要使用@RequestBody,才能将数据封装到对应的bean,同时保证http的请求头的content-type是对应

2、如果前端是以表单形式或者是以parameters提交,则不需要使用@RequestBody,才会进行对象封装,同时保证http的请求头的content-type是对应的

3、在进行SpringBoot应用程序测试时,引入的JUnit是org.junit.jupiter.api.Test

4、在运行程序时,一定要确保你的XxxxMapper.xml文件被自动放到的target目录的classes指定的目录

http://www.hrbkazy.com/news/49879.html

相关文章:

  • 巴彦淖尔网站制作开发广州seo顾问服务
  • 可靠的盐城网站推广seo优化公司排名
  • 佛山网站代运营准度科技有限公司济南网站建设制作
  • 济宁网站建设 m.baidu.com怎么做优化
  • h5做的分销网站app接入广告变现
  • 新疆生产建设兵团发改委网站今日热点
  • 设计师之家网络seo是什么工作
  • 做网站专用图标焦作网络推广哪家好
  • 完美政府网站管理系统 漏洞蒙牛牛奶推广软文
  • 电子商务网站怎么做seo关键词优化快排
  • ps做网站广告logo广州seo优化推广
  • 做网站优化步骤电商营销的策略与方法
  • 百度网站验证方法seo推广灰色词
  • 网页视频怎么下载到u盘上教程seo推广排名网站
  • 真人性做爰官方网站初学seo网站推广需要怎么做
  • 织梦企业网站模板seo实战教程
  • 建设局网站模板淘词神器
  • 如何申请自己的网站空间网站建设报价单
  • 设计素材图片大全 psd素材长春seo排名优化
  • 网站建设域名提前买吗百度快照投诉中心
  • 苏州市网站优化谷歌流量代理代理
  • 全国企业老板电话名录锦州seo推广
  • 淘宝做网站的店邵阳seo优化
  • 商城网站 搭建电商平台链接怎么弄
  • 建设网站哪个好赣州seo公司
  • 附近有木有做网站网站排名优化软件
  • bootstrap 网站演示如何快速提升自己
  • 门户网站开发费怎做账win10优化
  • 国税网站上如何做股权变更怎样做一个产品营销方案
  • 广东省网站备案注销百度账户安全中心