Giter Site home page Giter Site logo

macrozheng / mall-learning Goto Github PK

View Code? Open in Web Editor NEW
12.7K 12.7K 8.3K 38.49 MB

mall学习教程,架构、业务、技术要点全方位解析。mall项目(60k+star)是一套电商系统,使用现阶段主流技术实现。涵盖了SpringBoot、MyBatis、Elasticsearch、RabbitMQ、Redis、MongoDB、Mysql等技术,采用Docker容器化部署。

Home Page: https://www.macrozheng.com

License: Apache License 2.0

Java 99.71% Dockerfile 0.06% Shell 0.11% HTML 0.08% CSS 0.01% JavaScript 0.03%
docker elasticsearch mongodb mybatis mysql rabbitmq redis springboot springcloud

mall-learning's Introduction

mall学习教程

公众号 交流 后台项目 前端项目 SpringCloud版本

简介

mall学习教程,架构、业务、技术要点全方位解析。mall项目(60k+star)是一套电商系统,使用现阶段主流技术实现。涵盖了SpringBoot、MyBatis、Elasticsearch、RabbitMQ、Redis、MongoDB、Mysql等技术,采用Docker容器化部署。

项目地址

更好的阅读体验

文档地址:https://www.macrozheng.com

序章

项目架构及数据库概览,推荐一些项目学习所需知识点。

架构篇

手把手教你搭建一个mall在使用的项目骨架,带你逐步熟悉mall所使用的技术栈。

业务篇

全面解析mall中使用的数据库表结构,带你熟悉mall项目中的电商业务。

技术要点篇

mall中一些功能的技术要点解析,这些技术要点和业务结合地比较紧密。

部署篇

mall开发及生产环境的搭建,涵盖Windows、Docker、K8S及自动化部署。

参考篇

mall相关技术的参考教程,每篇都是可以独立学习的教程,学习过程中遇到不懂的知识点可以从这里找找。

公众号

学习不走弯路,关注公众号「macrozheng」,回复「学习路线」,获取mall项目专属学习路线!

加微信群交流,公众号后台回复「加群」即可。

公众号图片

mall-learning's People

Contributors

macrozheng avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mall-learning's Issues

JwtAuthenticationTokenFilter验证逻辑

你好,在 mall-tiny-04 节,JwtAuthenticationTokenFilter 类,有一处代码感到疑惑:
image

if (jwtTokenUtil.validateToken(authToken, userDetails)) ,其中,
authToken 和 userDetails 源头是一致的,都是来自 Authorization,那这个比较在不过期的情况下,肯定返回 true,只是用来判断过期吗?另外,signature 的作用体现在哪里?为什么随便造 token 中的 signature 也能登录成功呢?方便的话能解答一下,谢谢~

elasticsearchTemplate

Action:

Consider defining a bean named 'elasticsearchTemplate' in your configuration.

添加Swagger-UI的配置代码示例有点小瑕疵

文档地址

image

这个注释有点小问题,个人测试的实际情况是。

//为有@ApiOperation注解的方法生成API文档
.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))

上述代码仅扫描 类上有无指定注解
即如果类上有ApiOperation注解,会生成API文档。
又因为该注解只能在作用于方法。建议删除此逻辑。

关于docker-maven-plugin构建镜像时出错

你好,问下为啥我用docker-maven-plugin 构建镜像时报错呢,是有什么schema需要指定么 0 0

[INFO] Building image mall/mall-admin:1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 10.478 s
[INFO] Finished at: 2020-07-24T11:26:03+08:00
[INFO] Final Memory: 70M/819M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal com.spotify:docker-maven-plugin:1.1.0:build (build-image) on project mall-admin: Exception caught: Schema specific part is opaque. -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.spotify:docker-maven-plugin:1.1.0:build (build-image) on project mall-admin: Exception caught
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.apache.maven.plugin.MojoExecutionException: Exception caught
at com.spotify.docker.AbstractDockerMojo.execute(AbstractDockerMojo.java:151)
at com.spotify.docker.BuildMojo.execute(BuildMojo.java:324)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
... 20 more
Caused by: java.lang.IllegalArgumentException: Schema specific part is opaque.
at com.spotify.docker.client.shaded.org.glassfish.jersey.uri.internal.JerseyUriBuilder.checkSsp(JerseyUriBuilder.java:714)
at com.spotify.docker.client.shaded.org.glassfish.jersey.uri.internal.JerseyUriBuilder.path(JerseyUriBuilder.java:356)
at com.spotify.docker.client.shaded.org.glassfish.jersey.uri.internal.JerseyUriBuilder.path(JerseyUriBuilder.java:72)
at com.spotify.docker.client.shaded.org.glassfish.jersey.client.JerseyWebTarget.path(JerseyWebTarget.java:153)
at com.spotify.docker.client.shaded.org.glassfish.jersey.client.JerseyWebTarget.path(JerseyWebTarget.java:59)
at com.spotify.docker.client.DefaultDockerClient.build(DefaultDockerClient.java:1412)
at com.spotify.docker.client.DefaultDockerClient.build(DefaultDockerClient.java:1402)
at com.spotify.docker.BuildMojo.buildImage(BuildMojo.java:623)
at com.spotify.docker.BuildMojo.execute(BuildMojo.java:403)
at com.spotify.docker.AbstractDockerMojo.execute(AbstractDockerMojo.java:149)
... 23 more
[ERROR]
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

小建议

大佬发个支付宝、微信、PayPal 收款码吧,开源不易,大伙打赏才能让开源者的热情不会慢慢消磨殆尽。

I suggest you send a payment code of alipay, WeChat and PayPal. It is not easy to open source. Only by giving rewards can we keep the enthusiasm of open source users from fading away.

elasticsearch 批量导入

调用这个接口报错,http://localhost:8080/esProduct/importAll,什么原因呢

{
"timestamp": "2019-10-01T02:40:07.016+0000",
"status": 500,
"error": "Internal Server Error",
"message": "Bulk indexing has failures. Use ElasticsearchException.getFailedDocuments() for detailed messages [{33=RemoteTransportException[[NzqGfTB][172.17.0.2:9300][indices:data/write/bulk[s][p]]]; nested: TranslogException[Failed to write operation [NoOp{seqNo=0, primaryTerm=4, reason='null'}]]; nested: NullPointerException;, 34=RemoteTransportException[[NzqGfTB][172.17.0.2:9300][indices:data/write/bulk[s][p]]]; nested: TranslogException[Failed to write operation [NoOp{seqNo=0, primaryTerm=4, reason='null'}]]; nested: NullPointerException;, 35=RemoteTransportException[[NzqGfTB][172.17.0.2:9300][indices:data/write/bulk[s][p]]]; nested: TranslogException[Failed to write operation [NoOp{seqNo=0, primaryTerm=4, reason='null'}]]; nested: NullPointerException;, 36=RemoteTransportException[[NzqGfTB][172.17.0.2:9300][indices:data/write/bulk[s][p]]]; nested: TranslogException[Failed to write operation [NoOp{seqNo=0, primaryTerm=4, reason='null'}]]; nested: NullPointerException;, 26=RemoteTransportException[[NzqGfTB][172.17.0.2:9300][indices:data/write/bulk[s][p]]]; nested: TranslogException[Failed to write operation [NoOp{seqNo=0, primaryTerm=4, reason='null'}]]; nested: NullPointerException;, 27=RemoteTransportException[[NzqGfTB][172.17.0.2:9300][indices:data/write/bulk[s][p]]]; nested: TranslogException[Failed to write operation [NoOp{seqNo=0, primaryTerm=4, reason='null'}]]; nested: NullPointerException;, 28=RemoteTransportException[[NzqGfTB][172.17.0.2:9300][indices:data/write/bulk[s][p]]]; nested: TranslogException[Failed to write operation [NoOp{seqNo=0, primaryTerm=4, reason='null'}]]; nested: NullPointerException;, 29=RemoteTransportException[[NzqGfTB][172.17.0.2:9300][indices:data/write/bulk[s][p]]]; nested: TranslogException[Failed to write operation [NoOp{seqNo=0, primaryTerm=4, reason='null'}]]; nested: NullPointerException;, 30=RemoteTransportException[[NzqGfTB][172.17.0.2:9300][indices:data/write/bulk[s][p]]]; nested: TranslogException[Failed to write operation [NoOp{seqNo=0, primaryTerm=4, reason='null'}]]; nested: NullPointerException;, 31=RemoteTransportException[[NzqGfTB][172.17.0.2:9300][indices:data/write/bulk[s][p]]]; nested: TranslogException[Failed to write operation [NoOp{seqNo=0, primaryTerm=4, reason='null'}]]; nested: NullPointerException;, 32=RemoteTransportException[[NzqGfTB][172.17.0.2:9300][indices:data/write/bulk[s][p]]]; nested: TranslogException[Failed to write operation [NoOp{seqNo=0, primaryTerm=4, reason='null'}]]; nested: NullPointerException;}]",
"path": "/esProduct/importAll"
}

RabbitMQ延迟消息

教程中生成订单时会向死信队列发送消息,到期后向取消订单队列发送消息。如果订单未到期用户支付成功了,死信队列的消息该怎么办?

看了一下源码,支付成功回调函数并没有对死信队列做处理,取消订单也是暴露Api手动调用而不是自动超时取消。

关于功能模块的问题

这个商城项目还有很多功能未完善,比如评论管理之类的模块,不知道大佬可以分享一下这个吗?

增加商品页面空白没有展示,控制台报错

菜单 : 商品 → 添加商品
地址 : http://localhost:8090/#/pms/addProduct
版本 : Chrome/81.0.4044.92

错误代码
ReferenceError: tinymce is not defined
at eval (zh_CN.js?5900:1)
at Object../static/tinymce4.7.5/langs/zh_CN.js (1.js:647)
at __webpack_require__ (app.js:708)
at fn (app.js:113)
at eval (selector.js?type=script&index=0!./src/components/Tinymce/index.vue:2)
at Object../node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/selector.js?type=script&index=0!./src/components/Tinymce/index.vue (1.js:15)
at __webpack_require__ (app.js:708)
at fn (app.js:113)
at eval (index.vue?f8c1:1)
at Object../src/components/Tinymce/index.vue (1.js:576)

找不到PasswordEncoder的Bean

在mall整合SpringSecurity和JWT实现认证和授权(二)中

Field passwordEncoder in com.csmaxwell.mall.service.impl.UmsAdminServiceImpl required a bean of type 'org.springframework.security.crypto.password.PasswordEncoder' that could not be found.

The injection point has the following annotations:
	- @org.springframework.beans.factory.annotation.Autowired(required=true)


Action:

Consider defining a bean of type 'org.springframework.security.crypto.password.PasswordEncoder' in your configuration.

在 UmsAdminServiceImpl 的

@Autowired
private PasswordEncoder passwordEncoder

这个Bean不是在 SecurityConfig中添加了吗?为什么会提示找不到呢?

@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled=true)
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    @Autowired
    private UmsAdminService adminService;
    @Autowired
    private RestfulAccessDeniedHandler restfulAccessDeniedHandler;
    @Autowired
    private RestAuthenticationEntryPoint restAuthenticationEntryPoint;

    @Override
    protected void configure(HttpSecurity httpSecurity) throws Exception {
        ...
    }

    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth.userDetailsService(userDetailsService())
                .passwordEncoder(passwordEncoder());
    }

    @Bean
    public PasswordEncoder passwordEncoder() {
        return new BCryptPasswordEncoder();
    }

使用源代码可以运行,我一一对比,发现只有一个地方不同:
这是作者的源代码 Security 的版本

这是我使用的 Security 版本

作者使用的是 2.1.3.RELEASE
是因为spring-boot-starter-security的版本不一样的原因吗?
希望能有大佬帮我解惑一下
--更新--
我把作者源代码更新到 2.1.13.RELEASE 现在版本一致,还是作者的代码可以运行,而我的一直说找不着这个 Bean,不要@Autowired注解,可以运行,但是链接都指向的 localhost:8080/login。
把作者的 passwordEncoder 方法上面的@bean去掉,报的错误就是一样的,所有是Spring没有找到这个Bean吗?

《mall在Linux环境下的部署(基于Docker Compose)》多余的步骤

这个『下载所有需要安装的Docker镜像』步骤似乎是多余的。

docker pull mysql:5.7
docker pull redis:3.2
#  略 略

因为作者已经在docker-compose-env.yml配置文件中的image: mysql:5.7声明过镜像来源和版本了。docker引擎是会自动帮你pull的。再执行上面的命令是多余的,相当于同样的代码出现了两次

run 镜像时报错

当我run mall-admin时,自动退出,查看log发现以下错误
`com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
at com.mysql.cj.jdbc.exceptions.SQLError.createCommunicationsException(SQLError.java:174)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:64)
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:835)
at com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:455)
at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:240)
at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:156)
at com.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:218)
at com.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:150)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1560)
at com.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1623)
at com.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:2468)
Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:105)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:151)
at com.mysql.cj.exceptions.ExceptionFactory.createCommunicationsException(ExceptionFactory.java:167)
at com.mysql.cj.protocol.a.NativeSocketConnection.connect(NativeSocketConnection.java:91)
at com.mysql.cj.NativeSession.connect(NativeSession.java:152)
at com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:955)
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:825)
... 9 common frames omitted
Caused by: java.net.ConnectException: Connection refused (Connection refused)
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at com.mysql.cj.protocol.StandardSocketFactory.connect(StandardSocketFactory.java:155)
at com.mysql.cj.protocol.a.NativeSocketConnection.connect(NativeSocketConnection.java:65)
... 12 common frames omitted`

教程博客

作者你好:
我想知道你的mall-learning 文档是用什么实现的>?

配置文件有问题报错

运行环境为windows。
运行mall-tiny-01generator时有这样的错误:

Thu Aug 20 18:45:03 CST 2020 WARN: Caught while disconnecting...

EXCEPTION STACK TRACE:



** BEGIN NESTED EXCEPTION ** 

javax.net.ssl.SSLException
MESSAGE: closing inbound before receiving peer's close_notify

STACKTRACE:

javax.net.ssl.SSLException: closing inbound before receiving peer's close_notify
	at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:133)
	at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:117)
	at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:314)
	at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:270)
	at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:261)
	at java.base/sun.security.ssl.SSLSocketImpl.shutdownInput(SSLSocketImpl.java:645)
	at java.base/sun.security.ssl.SSLSocketImpl.shutdownInput(SSLSocketImpl.java:624)
	at com.mysql.cj.protocol.a.NativeProtocol.quit(NativeProtocol.java:1319)
	at com.mysql.cj.NativeSession.quit(NativeSession.java:182)
	at com.mysql.cj.jdbc.ConnectionImpl.realClose(ConnectionImpl.java:1750)
	at com.mysql.cj.jdbc.ConnectionImpl.close(ConnectionImpl.java:720)
	at org.mybatis.generator.config.Context.closeConnection(Context.java:748)
	at org.mybatis.generator.config.Context.introspectTables(Context.java:649)
	at org.mybatis.generator.api.MyBatisGenerator.generate(MyBatisGenerator.java:254)
	at org.mybatis.generator.api.MyBatisGenerator.generate(MyBatisGenerator.java:138)
	at com.macro.mall.tiny.mbg.Generator.main(Generator.java:32)


** END NESTED EXCEPTION **

需要在resources/generator.properties中一行改为jdbc.connectionURL=jdbc:mysql://localhost:3306/mall?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
方法源自:source

mall_tiny_docker报错

Failed to execute goal com.spotify:docker-maven-plugin:1.1.0:build (build-image) on project mall-tiny-docker: Exception caught

swagger-ui界面测试token有点坑啊

根据教程在swagger界面测试登录成功之后获取了token,然后给请求加上token,之后测试获取所有权限接口,一直401(暂未登录或token已经过期),JwtAuthenticationTokenFilter的doFilterInternal打断点发现,request.getHeader(this.tokenHeader)获取为null,搞了半天没找到原因,后面用postman,请求头里面添加token之后调用,结果调用成功,超郁闷-_-

Jackson字符串反序列化问题

我在Mac上面做docker部署
按照教程里面,把该安装的工具都在docker里面pull好,版本也都一模一样
直到走到springboot部署这个环节,按照第二张图,双击mall-admin下面的package
然后console以报错终止
我在根目录mvn install也不行,具体我贴个图好了,应该是关于Jackson字符串反序列化的问题,具体到代码哪一块儿,我也不知道怎么找/Users/swj/Desktop/[email protected]

/cart/add

postman请求
http://localhost:8085/mall-gateway/cart/add
总是:
{
"code": 401,
"data": "Full authentication is required to access this resource",
"message": "暂未登录或token已经过期"
}

请求体:
{
"createDate": "2019-12-21T12:25:16.428Z",
"deleteStatus": 0,
"id": 0,
"memberId": 0,
"memberNickname": "string",
"modifyDate": "2019-12-21T12:25:16.428Z",
"price": 0,
"productAttr": "string",
"productBrand": "string",
"productCategoryId": 0,
"productId": 0,
"productName": "string",
"productPic": "string",
"productSkuCode": "string",
"productSkuId": 0,
"productSn": "string",
"productSubTitle": "string",
"quantity": 0,
"sp1": "string",
"sp2": "string",
"sp3": "string"
}

UnsatisfiedDependencyException

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'pmsBrandController': Unsatisfied dependency expressed through field 'brandService'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'pmsBrandServiceImpl': Unsatisfied dependency expressed through field 'brandMapper'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'pmsBrandMapper' defined in file [F:\IDEA\firstproject\mall-master\mall-tiny-01\target\classes\com\macro\mall\tiny\mbg\mapper\PmsBrandMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory';

jenkins镜像安装

安装jenkins时jenkins/jenkins:lts镜像找不到,现在应该是使用jenkinsci/blueocean,供参考

elasticsearch导入失败

调用这个接口报错,http://localhost:8080/esProduct/importAll,什么原因呢

{
"timestamp": "2019-10-01T02:40:07.016+0000",
"status": 500,
"error": "Internal Server Error",
"message": "Bulk indexing has failures. Use ElasticsearchException.getFailedDocuments() for detailed messages [{33=RemoteTransportException[[NzqGfTB][172.17.0.2:9300][indices:data/write/bulk[s][p]]]; nested: TranslogException[Failed to write operation [NoOp{seqNo=0, primaryTerm=4, reason='null'}]]; nested: NullPointerException;, 34=RemoteTransportException[[NzqGfTB][172.17.0.2:9300][indices:data/write/bulk[s][p]]]; nested: TranslogException[Failed to write operation [NoOp{seqNo=0, primaryTerm=4, reason='null'}]]; nested: NullPointerException;, 35=RemoteTransportException[[NzqGfTB][172.17.0.2:9300][indices:data/write/bulk[s][p]]]; nested: TranslogException[Failed to write operation [NoOp{seqNo=0, primaryTerm=4, reason='null'}]]; nested: NullPointerException;, 36=RemoteTransportException[[NzqGfTB][172.17.0.2:9300][indices:data/write/bulk[s][p]]]; nested: TranslogException[Failed to write operation [NoOp{seqNo=0, primaryTerm=4, reason='null'}]]; nested: NullPointerException;, 26=RemoteTransportException[[NzqGfTB][172.17.0.2:9300][indices:data/write/bulk[s][p]]]; nested: TranslogException[Failed to write operation [NoOp{seqNo=0, primaryTerm=4, reason='null'}]]; nested: NullPointerException;, 27=RemoteTransportException[[NzqGfTB][172.17.0.2:9300][indices:data/write/bulk[s][p]]]; nested: TranslogException[Failed to write operation [NoOp{seqNo=0, primaryTerm=4, reason='null'}]]; nested: NullPointerException;, 28=RemoteTransportException[[NzqGfTB][172.17.0.2:9300][indices:data/write/bulk[s][p]]]; nested: TranslogException[Failed to write operation [NoOp{seqNo=0, primaryTerm=4, reason='null'}]]; nested: NullPointerException;, 29=RemoteTransportException[[NzqGfTB][172.17.0.2:9300][indices:data/write/bulk[s][p]]]; nested: TranslogException[Failed to write operation [NoOp{seqNo=0, primaryTerm=4, reason='null'}]]; nested: NullPointerException;, 30=RemoteTransportException[[NzqGfTB][172.17.0.2:9300][indices:data/write/bulk[s][p]]]; nested: TranslogException[Failed to write operation [NoOp{seqNo=0, primaryTerm=4, reason='null'}]]; nested: NullPointerException;, 31=RemoteTransportException[[NzqGfTB][172.17.0.2:9300][indices:data/write/bulk[s][p]]]; nested: TranslogException[Failed to write operation [NoOp{seqNo=0, primaryTerm=4, reason='null'}]]; nested: NullPointerException;, 32=RemoteTransportException[[NzqGfTB][172.17.0.2:9300][indices:data/write/bulk[s][p]]]; nested: TranslogException[Failed to write operation [NoOp{seqNo=0, primaryTerm=4, reason='null'}]]; nested: NullPointerException;}]",
"path": "/esProduct/importAll"
}

文档是怎么生成的?

我想问下,这种文档是用什么技术生成的?看到好像github的文档都是这个类型的

UmsAdminRoleRelationDao依赖无法注入

Hi
刚开始学习Mybatis 自定义的UmsAdminRoleRelationDao Interface不能注入到UmsAdminServiceImpl中。即便已经定义了UmsAdminRoleRelationDao.xml mapper文件

ES.bat执行报错

java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "accessClassInPackage.jdk.internal.vm.annotation")

配置了
java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "accessClassInPackage.jdk.internal.vm.annotation")
也不行

想请问用是jdk什么版本的?

admin初始密码

请问mall.sqlmall_tiny.sql中的admin初始密码'$2a$10$NZ5o7r2E.ayT2ZoxgjlI.eJ6OEYqjH7INR/F.mXDbjZJi9HF0YCVG'是什么呀?好像没有在相关文档里面看到。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.