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

Overview

mall学习教程

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

简介

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

项目地址

更好的阅读体验

序章

架构篇

手把手教你搭建一个mall在使用的项目骨架

业务篇

全面解析mall中使用的数据库表结构

技术要点篇

mall中一些功能的技术要点解析

部署篇

mall开发及生产环境的搭建

进阶篇

一套涵盖大部分核心组件使用的Spring Cloud教程,包括Spring Cloud Alibaba及分布式事务Seata,基于Spring Cloud Greenwich及SpringBoot 2.1.7

参考篇

mall相关技术的使用教程

工具篇

一些常用开发工具的使用

公众号

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

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

公众号图片

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

    关于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

    opened by honghongwen 3
  • 找不到PasswordEncoder的Bean

    找不到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吗?

    opened by zhongmax 3
  • UmsAdminRoleRelationDao 的mapper 是怎么生成的呢?

    UmsAdminRoleRelationDao 的mapper 是怎么生成的呢?

    大佬们,

    请问UmsAdminRoleRelationDaoresources/mapper/UmsAdminRoleRelationDao.xml 是怎么生成的呢?

    当我run app时候有这个错误:

    Field adminRoleRelationDao in com.sopherwang.mall.service.impl.UmsAdminServiceImpl required a bean of type 'com.sopherwang.mall.dao.UmsAdminRoleRelationDao' that could not be found.

    感谢感谢。

    opened by sopherwang 2
  • UnsatisfiedDependencyException

    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';

    opened by wyp2019 2
  • JwtAuthenticationTokenFilter验证逻辑

    JwtAuthenticationTokenFilter验证逻辑

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

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

    opened by yyl4ever 2
  • 请问tiny06里的es是只能用6.2.2版本的嘛,我用的7.6.2启动项目的时候会报错

    请问tiny06里的es是只能用6.2.2版本的嘛,我用的7.6.2启动项目的时候会报错

    2022-03-27 23:21:45.815 INFO 63926 --- [ main] o.s.d.e.c.TransportClientFactoryBean : Adding transport node : 192.168.101.19:9300 2022-03-27 23:21:46.957 ERROR 63926 --- [ main] o.s.b.web.embedded.tomcat.TomcatStarter : Error starting Tomcat context. Exception: org.springframework.beans.factory.UnsatisfiedDependencyException. Message: Error creating bean with name 'securityConfig': Unsatisfied dependency expressed through field 'adminService'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'umsAdminServiceImpl': Unsatisfied dependency expressed through field 'adminMapper'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'umsAdminMapper' defined in file [/Users/songyuning/Downloads/mall-learning-master 2/mall-tiny-06/target/classes/com/macro/mall/tiny/mbg/mapper/UmsAdminMapper.class]: Unsatisfied dependency expressed through bean property 'sqlSessionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [org/mybatis/spring/boot/autoconfigure/MybatisAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method 'sqlSessionFactory' threw exception; nested exception is org.springframework.core.NestedIOException: Failed to parse mapping resource: 'file [/Users/songyuning/Downloads/mall-learning-master 2/mall-tiny-06/target/classes/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml]'; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. The XML location is 'file [/Users/songyuning/Downloads/mall-learning-master 2/mall-tiny-06/target/classes/com/macro/mall/tiny/mbg/mapper/PmsBrandMapper.xml]'. Cause: java.lang.IllegalArgumentException: Result Maps collection already contains value for com.macro.mall.tiny.mbg.mapper.PmsBrandMapper.BaseResultMap

    opened by bzwwrd 1
  • 同学,您这个项目引入了52个开源组件,存在122个漏洞,辛苦升级一下

    同学,您这个项目引入了52个开源组件,存在122个漏洞,辛苦升级一下

    检测到 macrozheng/mall-learning 一共引入了52个开源组件,存在122个漏洞

    漏洞标题:FasterXML jackson-databind 代码问题漏洞
    缺陷组件:com.fasterxml.jackson.core:[email protected]
    漏洞编号:CVE-2019-16335
    漏洞描述:FasterXML Jackson是美国FasterXML公司的一款适用于Java的数据处理工具。jackson-databind是其中的一个具有数据绑定功能的组件。
    FasterXML jackson-databind 2.9.10之前版本中存在代码问题漏洞。该漏洞源于网络系统或产品未对输入的数据进行正确的验证。
    国家漏洞库信息:https://www.cnvd.org.cn/flaw/show/CNVD-2019-37149
    影响范围:[2.7.0, 2.8.11.5)
    最小修复版本:2.8.11.5
    缺陷组件引入路径:com.macro.mall:[email protected]>io.jsonwebtoken:[email protected]>com.fasterxml.jackson.core:[email protected]
    

    另外还有122个漏洞,详细报告:https://mofeisec.com/jr?p=ie6175

    opened by ghost 1
  • Error creating bean with name 'esProductRepository'

    Error creating bean with name 'esProductRepository'

    org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'esProductController': Unsatisfied dependency expressed through field 'esProductService'; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'esProductServiceImpl': Unsatisfied dependency expressed through field 'productRepository'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'esProductRepository' defined in com.example.mall.nosql.es.repository.EsProductRepository defined in @EnableElasticsearchRepositories declared on ElasticsearchRepositoriesRegistrar.EnableElasticsearchRepositoriesConfiguration: Invocation of init method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.data.elasticsearch.repository.support.SimpleElasticsearchRepository]: Constructor threw exception; nested exception is org.springframework.dao.DataAccessResourceFailureException: Connection refused: no further information; nested exception is java.lang.RuntimeException: Connection refused: no further information

    opened by lyhxyz 1
  • Bump mysql-connector-java from 8.0.15 to 8.0.16 in /mall-tiny-delay

    Bump mysql-connector-java from 8.0.15 to 8.0.16 in /mall-tiny-delay

    Bumps mysql-connector-java from 8.0.15 to 8.0.16.

    Changelog

    Sourced from mysql-connector-java's changelog.

    Changelog

    https://dev.mysql.com/doc/relnotes/connector-j/8.0/en/

    Version 8.0.23

    • Fix for Bug#21789378, FORCED TO SET SERVER TIMEZONE IN CONNECT STRING.

    • Fix for Bug#95644 (30573281), JDBC GETDATE/GETTIME/GETTIMESTAMP INTERFACE BEHAVIOR CHANGE AFTER UPGRADE 8.0.

    • Fix for Bug#94457 (29402209), CONNECTOR/J RESULTSET.GETOBJECT( ..., OFFSETDATETIME.CLASS ) THROWS.

    • Fix for Bug#76775 (20959249), FRACTIONAL SECONDS IN TIME VALUES ARE NOT AVAILABLE VIA JDBC.

    • Fix for Bug#99013 (31074051), AN EXTRA HOUR GETS ADDED TO THE TIMESTAMP WHEN SUBTRACTING INTERVAL 'N' DAYS.

    • Fix for Bug#98695 (30962953), EXECUTION OF "LOAD DATA LOCAL INFILE" COMMAND THROUGH JDBC FOR DATETIME COLUMN.

    • Fix for Bug#101413 (32099505), JAVA.TIME.LOCALDATETIME CANNOT BE CAST TO JAVA.SQL.TIMESTAMP.

    • Fix for Bug#101242 (32046007), CANNOT USE BYTEARRAYINPUTSTREAM AS ARGUMENTS IN PREPARED STATEMENTS ANYMORE. Thanks to Martynas Puronas for his contribution.

    • WL#14274, Support for authentication_ldap_sasl_client(SCRAM-SHA-256) authentication plugin.

    • WL#14206, Support for authentication_ldap_sasl_client(GSSAPI) authentication plugin.

    • WL#14207, Replace language in APIs and source code/docs.

    Version 8.0.22

    • Fix for Bug#98667 (31711961), "All pipe instances are busy" exception on multiple connections to named Pipe.

    • Fix for Bug#96309 (31699357), MultiHost in loadbalance may lead to a TPS reduction during a quick switch.

    • Fix for Bug#99076 (31083755), Unclear exception/error when connecting with jdbc:mysql to a mysqlx port.

    • Fix for Bug#96870 (30304764), Contribution: Allow to disable AbandonedConnectionCleanupThread completely. Thanks to Andrey Turbanov for his contribution.

    • WL#14115, Support for authentication_ldap_sasl_client(SCRAM-SHA-1) authentication plugin.

    • WL#14096, Add option to specify LOAD DATA LOCAL allow list folder.

    • WL#13780, Skip system-wide trust and key stores (incl. X DevAPI client certs).

    • WL#14017, XProtocol -- support for configurable compression algorithms.

    • Fix for Bug#92903 (28834903), MySQL Connector/j should support wildcard names or alternative names.

    • Fix for Bug#99767 (31443178), Contribution: Check SubjectAlternativeName for TLS instead of commonName.

    ... (truncated)

    Commits
    • 34cbc6b License book updated.
    • 793bd55 Minor fix for tests failing with URL without parameters.
    • 58600cc WL#12825, Remove third-party libraries from sources and bundles.
    • 5aa15d5 Fix for Bug#93590 (29054329), javax.net.ssl.SSLException: closing inbound bef...
    • 1fecc2b Fix for Bug#94414 (29384853), Connector/J RPM package have version number in ...
    • f5d24e3 Fix for Bug#27786499, REDUNDANT FILES IN DEBIAN PACKAGE FOR DEBIAN9(COMMUNITY...
    • c49db58 WL#12246, DevAPI: Prepared statement support.
    • a5c3d29 Added definition file for msi building tools.
    • 13045c2 WL#10839, Adjust c/J tests to the new "ON" default for
    • 2e350a5 Fix for Bug#29329326, PLEASE AVOID SHOW PROCESSLIST IF POSSIBLE.
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • Bump mysql-connector-java from 8.0.15 to 8.0.16 in /mall-tiny-dynamic-sql

    Bump mysql-connector-java from 8.0.15 to 8.0.16 in /mall-tiny-dynamic-sql

    Bumps mysql-connector-java from 8.0.15 to 8.0.16.

    Changelog

    Sourced from mysql-connector-java's changelog.

    Changelog

    https://dev.mysql.com/doc/relnotes/connector-j/8.0/en/

    Version 8.0.23

    • Fix for Bug#21789378, FORCED TO SET SERVER TIMEZONE IN CONNECT STRING.

    • Fix for Bug#95644 (30573281), JDBC GETDATE/GETTIME/GETTIMESTAMP INTERFACE BEHAVIOR CHANGE AFTER UPGRADE 8.0.

    • Fix for Bug#94457 (29402209), CONNECTOR/J RESULTSET.GETOBJECT( ..., OFFSETDATETIME.CLASS ) THROWS.

    • Fix for Bug#76775 (20959249), FRACTIONAL SECONDS IN TIME VALUES ARE NOT AVAILABLE VIA JDBC.

    • Fix for Bug#99013 (31074051), AN EXTRA HOUR GETS ADDED TO THE TIMESTAMP WHEN SUBTRACTING INTERVAL 'N' DAYS.

    • Fix for Bug#98695 (30962953), EXECUTION OF "LOAD DATA LOCAL INFILE" COMMAND THROUGH JDBC FOR DATETIME COLUMN.

    • Fix for Bug#101413 (32099505), JAVA.TIME.LOCALDATETIME CANNOT BE CAST TO JAVA.SQL.TIMESTAMP.

    • Fix for Bug#101242 (32046007), CANNOT USE BYTEARRAYINPUTSTREAM AS ARGUMENTS IN PREPARED STATEMENTS ANYMORE. Thanks to Martynas Puronas for his contribution.

    • WL#14274, Support for authentication_ldap_sasl_client(SCRAM-SHA-256) authentication plugin.

    • WL#14206, Support for authentication_ldap_sasl_client(GSSAPI) authentication plugin.

    • WL#14207, Replace language in APIs and source code/docs.

    Version 8.0.22

    • Fix for Bug#98667 (31711961), "All pipe instances are busy" exception on multiple connections to named Pipe.

    • Fix for Bug#96309 (31699357), MultiHost in loadbalance may lead to a TPS reduction during a quick switch.

    • Fix for Bug#99076 (31083755), Unclear exception/error when connecting with jdbc:mysql to a mysqlx port.

    • Fix for Bug#96870 (30304764), Contribution: Allow to disable AbandonedConnectionCleanupThread completely. Thanks to Andrey Turbanov for his contribution.

    • WL#14115, Support for authentication_ldap_sasl_client(SCRAM-SHA-1) authentication plugin.

    • WL#14096, Add option to specify LOAD DATA LOCAL allow list folder.

    • WL#13780, Skip system-wide trust and key stores (incl. X DevAPI client certs).

    • WL#14017, XProtocol -- support for configurable compression algorithms.

    • Fix for Bug#92903 (28834903), MySQL Connector/j should support wildcard names or alternative names.

    • Fix for Bug#99767 (31443178), Contribution: Check SubjectAlternativeName for TLS instead of commonName.

    ... (truncated)

    Commits
    • 34cbc6b License book updated.
    • 793bd55 Minor fix for tests failing with URL without parameters.
    • 58600cc WL#12825, Remove third-party libraries from sources and bundles.
    • 5aa15d5 Fix for Bug#93590 (29054329), javax.net.ssl.SSLException: closing inbound bef...
    • 1fecc2b Fix for Bug#94414 (29384853), Connector/J RPM package have version number in ...
    • f5d24e3 Fix for Bug#27786499, REDUNDANT FILES IN DEBIAN PACKAGE FOR DEBIAN9(COMMUNITY...
    • c49db58 WL#12246, DevAPI: Prepared statement support.
    • a5c3d29 Added definition file for msi building tools.
    • 13045c2 WL#10839, Adjust c/J tests to the new "ON" default for
    • 2e350a5 Fix for Bug#29329326, PLEASE AVOID SHOW PROCESSLIST IF POSSIBLE.
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • Bump mysql-connector-java from 8.0.15 to 8.0.16 in /mall-tiny-docker-plugin

    Bump mysql-connector-java from 8.0.15 to 8.0.16 in /mall-tiny-docker-plugin

    Bumps mysql-connector-java from 8.0.15 to 8.0.16.

    Changelog

    Sourced from mysql-connector-java's changelog.

    Changelog

    https://dev.mysql.com/doc/relnotes/connector-j/8.0/en/

    Version 8.0.23

    • Fix for Bug#21789378, FORCED TO SET SERVER TIMEZONE IN CONNECT STRING.

    • Fix for Bug#95644 (30573281), JDBC GETDATE/GETTIME/GETTIMESTAMP INTERFACE BEHAVIOR CHANGE AFTER UPGRADE 8.0.

    • Fix for Bug#94457 (29402209), CONNECTOR/J RESULTSET.GETOBJECT( ..., OFFSETDATETIME.CLASS ) THROWS.

    • Fix for Bug#76775 (20959249), FRACTIONAL SECONDS IN TIME VALUES ARE NOT AVAILABLE VIA JDBC.

    • Fix for Bug#99013 (31074051), AN EXTRA HOUR GETS ADDED TO THE TIMESTAMP WHEN SUBTRACTING INTERVAL 'N' DAYS.

    • Fix for Bug#98695 (30962953), EXECUTION OF "LOAD DATA LOCAL INFILE" COMMAND THROUGH JDBC FOR DATETIME COLUMN.

    • Fix for Bug#101413 (32099505), JAVA.TIME.LOCALDATETIME CANNOT BE CAST TO JAVA.SQL.TIMESTAMP.

    • Fix for Bug#101242 (32046007), CANNOT USE BYTEARRAYINPUTSTREAM AS ARGUMENTS IN PREPARED STATEMENTS ANYMORE. Thanks to Martynas Puronas for his contribution.

    • WL#14274, Support for authentication_ldap_sasl_client(SCRAM-SHA-256) authentication plugin.

    • WL#14206, Support for authentication_ldap_sasl_client(GSSAPI) authentication plugin.

    • WL#14207, Replace language in APIs and source code/docs.

    Version 8.0.22

    • Fix for Bug#98667 (31711961), "All pipe instances are busy" exception on multiple connections to named Pipe.

    • Fix for Bug#96309 (31699357), MultiHost in loadbalance may lead to a TPS reduction during a quick switch.

    • Fix for Bug#99076 (31083755), Unclear exception/error when connecting with jdbc:mysql to a mysqlx port.

    • Fix for Bug#96870 (30304764), Contribution: Allow to disable AbandonedConnectionCleanupThread completely. Thanks to Andrey Turbanov for his contribution.

    • WL#14115, Support for authentication_ldap_sasl_client(SCRAM-SHA-1) authentication plugin.

    • WL#14096, Add option to specify LOAD DATA LOCAL allow list folder.

    • WL#13780, Skip system-wide trust and key stores (incl. X DevAPI client certs).

    • WL#14017, XProtocol -- support for configurable compression algorithms.

    • Fix for Bug#92903 (28834903), MySQL Connector/j should support wildcard names or alternative names.

    • Fix for Bug#99767 (31443178), Contribution: Check SubjectAlternativeName for TLS instead of commonName.

    ... (truncated)

    Commits
    • 34cbc6b License book updated.
    • 793bd55 Minor fix for tests failing with URL without parameters.
    • 58600cc WL#12825, Remove third-party libraries from sources and bundles.
    • 5aa15d5 Fix for Bug#93590 (29054329), javax.net.ssl.SSLException: closing inbound bef...
    • 1fecc2b Fix for Bug#94414 (29384853), Connector/J RPM package have version number in ...
    • f5d24e3 Fix for Bug#27786499, REDUNDANT FILES IN DEBIAN PACKAGE FOR DEBIAN9(COMMUNITY...
    • c49db58 WL#12246, DevAPI: Prepared statement support.
    • a5c3d29 Added definition file for msi building tools.
    • 13045c2 WL#10839, Adjust c/J tests to the new "ON" default for
    • 2e350a5 Fix for Bug#29329326, PLEASE AVOID SHOW PROCESSLIST IF POSSIBLE.
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • mall-tiny-security DynamicSecurityFilter 每个request会执行两次

    mall-tiny-security DynamicSecurityFilter 每个request会执行两次

    https://github.com/macrozheng/mall-learning/tree/master/

    DynamicSecurityFilter是否加上判重比较?

    private static final String FILTER_APPLIED = "__spring_security_demoFilter_filterApplied";

    if (servletRequest.getAttribute(FILTER_APPLIED) != null) {
            filterChain.doFilter(servletRequest, servletResponse);
            return ;
        }
        //do something
        servletRequest.setAttribute(FILTER_APPLIED,true);
        filterChain.doFilter(servletRequest, servletResponse);
    
    opened by shengtu0328 0
  • mall-tiny-06 EsProductServiceImpl create方法错误

    mall-tiny-06 EsProductServiceImpl create方法错误

    源代码中的create方法,入参为id,根本无法添加新的商品

    // 修改后的方法(仅供参考) 
    @Override
        public CommonResult<EsProduct> create(EsProduct esProduct) {
            if (esProduct != null) {
                long id = esProduct.getId();
                Iterable<EsProduct> all = productRepository.findAll();
                Iterator<EsProduct> iterator = all.iterator();
                while (iterator.hasNext()) {
                    Long id1 = iterator.next().getId();
                    if (Objects.equal(id, id1)) {
                        LOGGER.warn("此id: {}已经被创建", id);
                        return CommonResult.failed();
                    }
                }
                productRepository.save(esProduct);
                LOGGER.info("创建商品成功,id:{}", id);
                return CommonResult.success(esProduct);
            }
            return CommonResult.failed();
        }
    
    opened by yixi0 0
  • 找不到isJavaInterface()

    找不到isJavaInterface()

    if(!compilationUnit.isJavaInterface()&&!compilationUnit.getType().getFullyQualifiedName().contains(EXAMPLE_SUFFIX)){ compilationUnit.addImportedType(new FullyQualifiedJavaType(API_MODEL_PROPERTY_FULL_CLASS_NAME)); } isJavaInterface方法报错,运行时:打印的结果如下: java: 找不到符号 符号: 方法 isJavaInterface() 位置: 类型为org.mybatis.generator.api.dom.java.CompilationUnit的变量 compilationUnit

    opened by wdsaini 0
  • SpringSecurity加@Aspect报错

    SpringSecurity加@Aspect报错

    { "timestamp": "2022-05-01T22:45:18.169+0000", "status": 500, "error": "Internal Server Error", "message": "org.springframework.security.web.servletapi.HttpServlet3RequestFactory$Servlet3SecurityContextHolderAwareRequestWrapper cannot be cast to com.dj.spring.mall.common.api.CommonResult", "path": "/admin/login" }

    opened by dajunJS 0
Owner
macro
Justice may be late, but will never be absent.
macro
:racehorse:基于SpringBoot + MySQL + Redis + RabbitMQ + Guava开发的高并发商品限时秒杀系统

系统介绍 本系统是使用SpringBoot开发的高并发限时抢购秒杀系统,除了实现基本的登录、查看商品列表、秒杀、下单等功能,项目中还针对高并发情况实现了系统缓存、降级和限流。 开发工具 IntelliJ IDEA + Navicat + Sublime Text3 + Git + Chrome 压测

FINN 2.3k Dec 27, 2022
Mars - Object Relational Mapping Framework for MongoDB (MongoDB ORM)

Mars Object Relational Mapping Framework for MongoDB 致自己 造自己的轮子,让别人去说 ; What is Mars Mars is a unified driver platform product developed by Shanghai J

null 35 Nov 17, 2022
Spring Boot & MongoDB Login and Registration example with JWT, Spring Security, Spring Data MongoDB

Spring Boot Login and Registration example with MongoDB Build a Spring Boot Auth with HttpOnly Cookie, JWT, Spring Security and Spring Data MongoDB. Y

null 15 Dec 30, 2022
mall项目是一套电商系统,包括前台商城系统及后台管理系统,基于SpringBoot+MyBatis实现,采用Docker容器化部署。 前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。 后台管理系统包含商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等模块。

mall 友情提示 快速体验项目:在线访问地址。 全套学习教程:《mall学习教程》。 微服务版本:基于Spring Cloud Hoxton & Alibaba的项目:mall-swarm。 专属学习路线:学习不走弯路,整理了套非常不错的《mall专属学习路线》。 项目交流:想要加群交流项目的朋友

macro 62.9k Jan 4, 2023
mall4cloud微服务商城,基于Spring Cloud、Nacos、Seata、Mysql、Redis、RocketMQ、canal、ElasticSearch、minio的B2B2C微服务商城系统,采用主流的互联网技术架构、全新的UI设计 B2B2C微服务商城|小程序微服务商城|

README 前言 本商城是基于Spring Cloud、Nacos、Seata、Mysql、Redis、RocketMQ、canal、ElasticSearch、minio的微服务B2B2C电商商城系统,采用主流的互联网技术架构、全新的UI设计、支持集群部署、服务注册和发现以及拥有完整的订单流程等

null 3k Jan 1, 2023
mall-swarm是一套微服务商城系统,采用了 Spring Cloud Hoxton & Alibaba、Spring Boot 2.3、Oauth2、MyBatis、Docker、Elasticsearch、Kubernetes等核心技术,同时提供了基于Vue的管理后台方便快速搭建系统。mall-swarm在电商业务的基础集成了注册中心、配置中心、监控中心、网关等系统功能。文档齐全,附带全套Spring Cloud教程。

mall-swarm 友情提示 快速体验项目:在线访问地址。 全套学习教程:《mall学习教程》。 Spring Cloud全套教程:《SpringCloud学习教程》。 专属学习路线:学习不走弯路,整理了套非常不错的《mall专属学习路线》。 项目交流:想要加群交流项目的朋友,可以加入mall项目

macro 9.7k Jan 3, 2023
hibernate redis 二级缓存使用 spring boot redis 配置

hibernate-redisson-spring-boot-starter 介绍 使用 Redisson 作为 hibernate redis 二级缓存提供器,redisson-hibernate-53(hibernate-version) 无法使用 spring boot 配置文件创建的 org

null 4 Jul 3, 2022
SpringBoot SpringSecurity Jpa mybatis-plus websocket Redis camunda Vue3 Vite ant-design VbenAdmin vxe-table bpmn.js

SpringBoot SpringSecurity Jpa mybatis-plus websocket Redis camunda Vue3 Vite ant-design VbenAdmin vxe-table bpmn.js

zsvg 16 Dec 13, 2022
:herb: 基于springboot的快速学习示例,整合自己遇到的开源框架,如:rabbitmq(延迟队列)、Kafka、jpa、redies、oauth2、swagger、jsp、docker、spring-batch、异常处理、日志输出、多模块开发、多环境打包、缓存cache、爬虫、jwt、GraphQL、dubbo、zookeeper和Async等等:pushpin:

欢迎大家留言和PR~ Tip: 技术更新换代太快,本仓库仅做参考,自己的项目具体使用哪个版本还需谨慎思考~(不推荐使用最新的版本,推荐使用(最新-1|2)的版本,会比较稳定) spring-boot-quick 前言   自己很早就想搞一个总的仓库就是将自己平时遇到的和学习到的东西整合在一起,方便后

wangxc 2.1k Jan 2, 2023
A lightweight messaging library that simplifies the development and usage of RabbitMQ with the AMQP protocol.

kryo-messaging This library contains a simple MessagingService which simplifies the setup and work with RabbitMQ and the AMQP protocol. Usage Gradle r

Kryonite Labs 3 Jan 10, 2022
Mock for RabbitMQ Java amqp-client

RabbitMQ-mock Mock for RabbitMQ Java amqp-client. Compatible with versions 4.0.0 to 5.9.0 of com.rabbitmq:amqp-client Compatible with versions 3.6.3 t

Fridujo 160 Dec 28, 2022
一个涵盖六个专栏:Spring Boot 2.X、Spring Cloud、Spring Cloud Alibaba、Dubbo、分布式消息队列、分布式事务的仓库。希望胖友小手一抖,右上角来个 Star,感恩 1024

友情提示:因为提供了 50000+ 行示例代码,所以艿艿默认注释了所有 Maven Module。 胖友可以根据自己的需要,修改 pom.xml 即可。 一个涵盖六个主流技术栈的正经仓库: 《Spring Boot 专栏》 《Spring Cloud Alibaba 专栏》 《Spring Clou

芋道源码 15.7k Dec 31, 2022
bilibili B站 哔哩哔哩 acfun A站 樱花动漫 番剧下载器(Video Downloader):smiley:​ 仅供学习交流 求 star orz

AnimeDownloader 番剧下载器 ?? 使用教程 下载 B 站视频 支持的类型 普通视频(不支持互动类视频) 番剧(大会员视频需要先登录) 电影 纪录片 ... 下载 A 站视频 支持类型 普通视频 番剧(不支持付费视频) 下载樱花动漫视频 支持类型 部分支持(加密的 m3u8 类型视频不

lin 71 Dec 16, 2022
【咕泡学院实战项目】-基于SpringBoot+Dubbo构建的电商平台-微服务架构、商城、电商、微服务、高并发、kafka、Elasticsearch

咕泡商城- 微服务架构实战 咕泡商城是咕泡学院 Java架构课程中,帮助学员对于技术更好落地的一个实战项目,项目基于springboot2.1.6.RELEASE+Dubbo2.7.3 来构建微服务。 业务模块划分,尽量贴合互联网公司的架构体系。所以,除了业务本身的复杂度不是很高之外,整体的架构基本

Mic 4.5k Dec 26, 2022
Official Elasticsearch Java Client

Elasticsearch Java Client The official Java client for Elasticsearch. Note: this project is still a work in progress. This client is meant to replace

elastic 230 Jan 8, 2023
An example on how to build a configurable widget to trigger external searches along with Liferay search to Elasticsearch.

Liferay External Searches An example on how to build a configurable widget to trigger external searches along with Liferay search to Elasticsearch. Ge

Louis-Guillaume Durand 4 Oct 25, 2021
Springboot CRUD api using containerized mongoDB. ☕🍃📦

Javongo ☕ ?? Springboot CRUD api using containerized mongoDB. Feel free to use it as an example for your projects. Running Make sure ports 27017 & 808

Antonio Cituk 8 Mar 19, 2022