本文部分内容来自黑马49期项目实战-品优购电商系统开发
近年来,中国的电子商务快速发展,交易额连创新高,电子商务在各领域的应用不断拓展和深化、相关服务业蓬勃发展、支撑体系不断健全完善、创新的动力和能力 不断增强。电子商务正在与实体经济深度融合,进入规模性发展阶段,对经济社会生活的影响不断增大,正成为我国经济发展的新引擎。
中国电子商务研究中心数据显示,截止到 2012 年底,中国电子商务市场交易规模达 7.85万亿人民币,同比增长 30.83%。其中,B2B 电子商务交易额 达 6.25 万亿,同比增长 27%。而 2011 年全年,中国电子商务市场交易额达 6 万亿人民币,同比增长 33%,占 GDP 比重上升到 13%;2012 年,电子商务占 GDP 的比重已经高达 15%。
B2B ( Business to Business)是指进行电子商务交易的供需双方都是商家(或企业、公司),她(他)们使用了互联网的技术或各种商务网络平台,完成商务交易的过程。电子商务是现代 B2B marketing的一种具体主要的表现形式。
案例:阿里巴巴、慧聪网
C2C即 Customer(Consumer) to Customer(Consumer),意思就是消费者个人间的电子商务行为。比如一个消费者有一台电脑,通过网络进行交易,把它出售给另外一个消费者,此种交易类型就称为C2C电子商务。
案例:淘宝、易趣、瓜子二手车
B2C是Business-to-Customer的缩写,而其中文简称为“商对客”。“商对客”是电子商务的一种模式,也就是通常说的直接面向消费者销售产品和服务商业零售模式。这种形式的电子商务一般以网络零售业为主,主要借助于互联网开展在线销售活动。B2C即企业通过互联网为消费者提供一个新型的购物环境——网上商店,消费者通过网络在网上购物、网上支付等消费行为。
案例:唯品会、乐蜂网
C2B(Consumer to Business,即消费者到企业),是互联网经济时代新的商业模式。这一模式改变了原有生产者(企业和机构)和消费者的关系,是一种消费者贡献价值(Create Value), 企业和机构消费价值(Consume Value)。
C2B模式和我们熟知的供需模式(DSM, Demand Supply Model)恰恰相反,真正的C2B 应该先有消费者需求产生而后有企业生产,即先有消费者提出需求,后有生产企业按需求组织生产。通常情况为消费者根据自身需求定制产品和价格,或主动参与产品设计、生产和定价,产品、价格等彰显消费者的个性化需求,生产企业进行定制化生产。
案例:海尔商城、 尚品宅配
O2O即Online To Offline(在线离线/线上到线下),是指将线下的商务机会与互联网结合,让互联网成为线下交易的平台,这个概念最早来源于美国。O2O的概念非常广泛,既可涉及到线上,又可涉及到线下,可以通称为O2O。主流商业管理课程均对O2O这种新型的商业模式有所介绍及关注。
案例:美团、饿了吗
B2B2C是一种电子商务类型的网络购物商业模式,B是BUSINESS的简称,C是CUSTOMER的简称,第一个B指的是商品或服务的供应商,第二个B指的是从事电子商务的企业,C则是表示消费者。
第一个BUSINESS,并不仅仅局限于品牌供应商、影视制作公司和图书出版商,任何的商品供应商或服务供应商都能可以成为第一个BUSINESS;第二B是B2B2C模式的电子商务企业,通过统一的经营管理对商品和服务、消费者终端同时进行整合,是广大供应商和消费者之间的桥梁,为供应商和消费者提供优质的服务,是互联网电子商务服务供应商。C表示消费者,在第二个B构建的统一电子商务平台购物的消费者;
B2B2C的来源于目前的B2B、B2C模式的演变和完善,把B2C和C2C完美地结合起来,通过B2B2C模式的电子商务企业构建自己的物流供应链系统,提供统一的服务。
案例:京东商城、天猫商城
品优购网上商城是一个综合性的 B2B2C 平台,类似京东商城、天猫商城。网站采用商家入驻的模式,商家入驻平台提交申请,有平台进行资质审核,审核通过后,商家拥有独立的管理后台录入商品信息。商品经过平台审核后即可发布。
品优购网上商城主要分为网站前台、运营商后台、商家管理后台三个子系统
SOA是Service-Oriented Architecture的首字母简称,它是一种支持面向服务的架构样式。从服务、基于服务开发和服务的结果来看,面向服务是一种思考方式。其实SOA架构更多应用于互联网项目开发。
为什么互联网项目会采用SOA架构呢?随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,迫切需一个治理系统确保架构有条不紊的演进。
表名称 | 含义 |
---|---|
tb_brand | 品牌 |
tb_specification | 规格 |
tb_specification_option | 规格选项 |
tb_type_template | 类型模板:用于关联品牌和规格 |
tb_item_cat | 商品分类 |
tb_seller | 商家 |
tb_goods | 商品 |
tb_goods_desc | 商品详情 |
tb_item | 商品明细 |
tb_content | 内容(广告) |
tb_content_category | 内容(广告)类型 |
tb_user | 用户 |
tb_order | 订单 |
tb_order_item | 订单明细 |
tb_pay_log | 支付日志 |
Dubbox 是一个分布式服务框架,其前身是阿里巴巴开源项目Dubbo ,被国内电商及互联网项目中使用,后期阿里巴巴停止了该项目的维护,当当网便在Dubbo基础上进行优化,并继续维护,为了与原有的Dubbo区分,故将其命名为Dubbox。
Dubbox 致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。简单的说,dubbox就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbox这样的分布式服务框架的需求,并且本质上是个服务调用的东东,说白了就是个远程服务调用的分布式框架。
第一步:安装jdk
第二步:把Zookeeper的压缩包上传到linux系统,或直接下载
$ wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/current/zookeeper-3.4.12.tar.gz
第三步:解压缩压缩包
$ tar -zxvf zookeeper-3.4.12.tar.gz
第四步:进入Zookeeper-3.4.12目录,创建data文件夹
$ cd zookeeper-3.4.12/
$ mkdir data
第五步:进入conf目录,把zoo_sample.cfg改名为zoo.cfg
$ cd conf/
$ mv zoo_sample.cfg zoo.cfg
第六步:打开zoo.cfg,修改data属性:dataDir=/root/zookeeper-3.4.12/data
vi zoo.cfg
进入bin目录,启动服务
$ ./zkServer.sh start
关闭服务
$ ./zkServer.sh stop
查看状态
$ ./zkServer.sh status
Dubbox的jar包并没有部署到Maven的中央仓库中,大家在Maven的中央仓库中可以查找到Dubbo的最终版本是2.5.3 , 阿里巴巴解散了Dubbo团队后由当当网继续维护此项目,并改名为 Dubbox ,坐标不变,版本变更了,但是并没有提交到中央仓库。
我们现在需要手动将Dubbox的jar包安装到我的本地仓库中。
先将dubbo-2.8.4.jar包放到/data/下, 然后输入命令
$ mvn install:install-file -Dfile=/data/dubbo-2.8.4.jar -DgroupId=com.alibaba -DartifactId=dubbo -Dversion=2.8.4 -Dpackaging=jar
创建Maven工程(war)dubboxdemo-service,在pom.xml中引入依赖
4.0.0
com.huangwangxin.demo
dubboxdemo-service
1.0-SNAPSHOT
war
5.0.6.RELEASE
2.8.4
3.4.12
org.springframework
spring-context
${spring.version}
org.springframework
spring-beans
${spring.version}
org.springframework
spring-webmvc
${spring.version}
org.springframework
spring-jdbc
${spring.version}
org.springframework
spring-aspects
${spring.version}
org.springframework
spring-jms
${spring.version}
org.springframework
spring-context-support
${spring.version}
com.alibaba
dubbo
${dubbo.version}
org.apache.zookeeper
zookeeper
${zookeeper.version}
com.github.sgroschupf
zkclient
0.1
javassist
javassist
3.12.1.GA
org.apache.maven.plugins
maven-compiler-plugin
3.7.0
1.8
org.apache.tomcat.maven
tomcat7-maven-plugin
8081
/
在工程的webapp下创建WEB-INF文件夹,创建web.xml
contextConfigLocation
classpath:applicationContext*.xml
org.springframework.web.context.ContextLoaderListener
创建业务接口
创建实现类
创建包com.huangwangxin.dubbodemo.service,用于存放业务实现类
创建业务实现类UserServiceImpl文件
package com.huangwangxin.dubbodemo.service.impl;
import com.alibaba.dubbo.config.annotation.Service;
import com.huangwangxin.dubbodemo.service.UserService;
/**
* 业务实现类
*
* @author wangxinhuang
* @date 2018/6/20
*/
@Service
public class UserServiceImpl implements UserService {
@Override
public String getName() {
return "Dubbo Demo";
}
}
注意,此处Service注解使用的是com.alibaba.dubbo包
编写配置文件
测试运行
创建Maven工程(war)dubboxdemo-web,在pom.xml中引入依赖,将tomca他插件的端口改为8082
4.0.0
com.huangwangxin
dubboxdemo-web
1.0-SNAPSHOT
war
5.0.6.RELEASE
2.8.4
3.4.12
org.springframework
spring-context
${spring.version}
org.springframework
spring-beans
${spring.version}
org.springframework
spring-webmvc
${spring.version}
org.springframework
spring-jdbc
${spring.version}
org.springframework
spring-aspects
${spring.version}
org.springframework
spring-jms
${spring.version}
org.springframework
spring-context-support
${spring.version}
com.alibaba
dubbo
${dubbo.version}
org.apache.zookeeper
zookeeper
${zookeeper.version}
com.github.sgroschupf
zkclient
0.1
javassist
javassist
3.12.1.GA
org.apache.maven.plugins
maven-compiler-plugin
3.7.0
1.8
org.apache.tomcat.maven
tomcat7-maven-plugin
8082
/
在工程的webapp下创建WEB-INF文件夹,创建web.xml
CharacterEncodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
utf-8
forceEncoding
true
CharacterEncodingFilter
/*
springmvc
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:springmvc.xml
springmvc
*.do
编写业务逻辑
拷贝com.huangwangxin.dubbodemo.service下的UserService接口文件到此工程
创建并编写UserController文件
package com.huangwangxin.dubbodemo.controller;
import com.alibaba.dubbo.config.annotation.Reference;
import com.huangwangxin.dubbodemo.service.UserService;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* 用户
*
* @author wangxinhuang
* @date 2018/6/21
*/
@Controller
@RequestMapping("/user")
public class UserController {
@Reference
private UserService userService;
@RequestMapping("/showName")
@ResponseBody
public String showName() {
return userService.getName();
}
}
编写配置文件
测试运行
下载并解压
$ wget https://codeload.github.com/dangdangdotcom/dubbox/zip/dubbox-2.8.4
$ unzip dubbox-2.8.4
进入dubbox-admin,输入maven命令
$ cd dubbox-dubbox-2.8.4/dubbo-admin/
$ mvn package -Dmaven.skip.test=true
进入target文件夹,将dubbo-admin-2.8.4.war放到tomcat的webapps下
$ cp dubbo-admin-2.8.4.war /usr/local/tomcat/webapps/dubbo-admin.war
# 启动tomcat
$ /usr/local/tomcat/bin/startup.sh
创建Maven工程
配置pom.xml,锁定版本信息
4.0.0
com.huangwangxin
pinyougou-parent
1.0-SNAPSHOT
pom
5.0.6.RELEASE
2.8.4
3.4.12
4.12
1.2.47
4.5.5
1.7.25
8.0.11
1.2
2.9.0
7.3.0
3.7
2.6
3.6
1.3.3
3.4.6
1.3.2
1.2.17
5.1.4
1.1.10
4.0.1
2.3.1
2.3.28
5.15.3
2012_u6
org.springframework
spring-context
${spring.version}
org.springframework
spring-beans
${spring.version}
org.springframework
spring-webmvc
${spring.version}
org.springframework
spring-jdbc
${spring.version}
org.springframework
spring-aspects
${spring.version}
org.springframework
spring-jms
${spring.version}
org.springframework
spring-context-support
${spring.version}
org.springframework
spring-test
${spring.version}
com.alibaba
dubbo
${dubbo.version}
com.alibaba
fastjson
${fastjson.version}
org.apache.zookeeper
zookeeper
${zookeeper.version}
com.github.sgroschupf
zkclient
0.1
junit
junit
${junit.version}
javassist
javassist
3.12.1.GA
commons-codec
commons-codec
1.10
javax.servlet
servlet-api
2.5
provided
com.github.pagehelper
pagehelper
${pagehelper.version}
org.mybatis
mybatis
${mybatis.version}
org.mybatis
mybatis-spring
${mybatis-spring.version}
com.github.miemiedev
mybatis-paginator
${mybatis-paginator.version}
mysql
mysql-connector-java
${mysql.version}
com.alibaba
druid
${druid.version}
org.csource.fastdfs
fastdfs
1.2
commons-fileupload
commons-fileupload
${commons-fileupload.version}
redis.clients
jedis
${jedis.version}
org.springframework.data
spring-data-redis
2.0.7.RELEASE
org.freemarker
freemarker
${freemarker.version}
org.apache.activemq
activemq-all
${activemq.version}
org.springframework.security
spring-security-web
${spring.version}
org.springframework.security
spring-security-config
${spring.version}
com.github.penggle
kaptcha
2.3.2
javax.servlet
javax.servlet-api
org.springframework.security
spring-security-cas
${spring.version}
org.jasig.cas.client
cas-client-core
3.5.0
org.slf4j
log4j-over-slf4j
org.apache.solr
solr-solrj
${solrj.version}
com.janeluo
ikanalyzer
${ik.version}
org.apache.httpcomponents
httpcore
4.4.9
org.apache.httpcomponents
httpclient
${httpclient.version}
dom4j
dom4j
1.6.1
xml-apis
xml-apis
2.0.2
org.apache.maven.plugins
maven-compiler-plugin
3.7.0
1.8
utf-8
创建子模块
数据访问层模块(pinyougou-dao)
pinyougou-parent
com.huangwangxin
1.0-SNAPSHOT
4.0.0
pinyougou-dao
jar
com.huangwangxin
pinyougou-pojo
1.0-SNAPSHOT
org.mybatis
mybatis
org.mybatis
mybatis-spring
com.github.miemiedev
mybatis-paginator
mysql
mysql-connector-java
com.alibaba
druid
创建相关文件
mybatis-config.xml
db.properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/pinyougoudb?characterEncoding=utf-8
jdbc.username=root
jdbc.password=wangxin
applicationContext-dao.xml
商家商品服务接口模块(pinyougou-sellergoods-interface)的pom.xml
pinyougou-parent
com.huangwangxin
1.0-SNAPSHOT
4.0.0
pinyougou-sellergoods-interface
jar
com.huangwangxin
pinyougou-pojo
1.0-SNAPSHOT
配置商家商品服务模块(pinyougou-sellergoods-service)
pom.xml
pinyougou-parent
com.huangwangxin
1.0-SNAPSHOT
4.0.0
pinyougou-sellergoods-service
war
com.huangwangxin
pinyougou-common
1.0-SNAPSHOT
com.huangwangxin
pinyougou-dao
1.0-SNAPSHOT
com.huangwangxin
pinyougou-sellergoods-interface
1.0-SNAPSHOT
org.springframework
spring-context
org.springframework
spring-beans
org.springframework
spring-webmvc
org.springframework
spring-jdbc
org.springframework
spring-aspects
org.springframework
spring-jms
org.springframework
spring-context-support
org.springframework
spring-test
com.alibaba
dubbo
com.alibaba
fastjson
org.apache.zookeeper
zookeeper
com.github.sgroschupf
zkclient
junit
junit
javassist
javassist
commons-codec
commons-codec
javax.servlet
servlet-api
provided
org.apache.tomcat.maven
tomcat7-maven-plugin
/
9001
创建相关文件
applicationContext-service.xml
web.xml
contextConfigLocation
classpath*:spring/applicationContext-*.xml
org.springframework.web.context.ContextLoaderListener
配置运营商管理后台 (pinyougou-manager-web)
pom.xml
pinyougou-parent
com.huangwangxin
1.0-SNAPSHOT
4.0.0
pinyougou-manager-web
war
com.huangwangxin
pinyougou-common
1.0-SNAPSHOT
com.huangwangxin
pinyougou-sellergoods-interface
1.0-SNAPSHOT
org.springframework
spring-context
org.springframework
spring-beans
org.springframework
spring-webmvc
org.springframework
spring-jdbc
org.springframework
spring-aspects
org.springframework
spring-jms
org.springframework
spring-context-support
org.springframework
spring-test
com.alibaba
dubbo
com.alibaba
fastjson
org.apache.zookeeper
zookeeper
com.github.sgroschupf
zkclient
junit
junit
javassist
javassist
commons-codec
commons-codec
javax.servlet
servlet-api
provided
org.apache.tomcat.maven
tomcat7-maven-plugin
/
9101
创建相关文件
springmvc.xml
WriteMapNullValue
WriteDateUseDateFormat
web.xml
CharacterEncodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
utf-8
forceEncoding
true
CharacterEncodingFilter
/*
springmvc
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:spring/springmvc.xml
springmvc
*.do
配置商家管理后台(pinyougou-shop-web)
pom.xml
pinyougou-parent
com.huangwangxin
1.0-SNAPSHOT
4.0.0
pinyougou-shop-web
war
com.huangwangxin
pinyougou-common
1.0-SNAPSHOT
com.huangwangxin
pinyougou-sellergoods-interface
1.0-SNAPSHOT
org.springframework
spring-context
org.springframework
spring-beans
org.springframework
spring-webmvc
org.springframework
spring-jdbc
org.springframework
spring-aspects
org.springframework
spring-jms
org.springframework
spring-context-support
org.springframework
spring-test
com.alibaba
dubbo
com.alibaba
fastjson
org.apache.zookeeper
zookeeper
com.github.sgroschupf
zkclient
junit
junit
javassist
javassist
commons-codec
commons-codec
javax.servlet
servlet-api
provided
org.apache.tomcat.maven
tomcat7-maven-plugin
/
9102
创建相关文件
springmvc.xml
WriteMapNullValue
WriteDateUseDateFormat
web.xml
CharacterEncodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
utf-8
forceEncoding
true
CharacterEncodingFilter
/*
springmvc
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:spring/springmvc.xml
springmvc
*.do
修改每个实体类,实现Serializable接口
public class TbUser implements Serializable
字段 | 类型 | 长度 | 含义 |
---|---|---|---|
Id | Bigint | 主键 | |
Name | Varchar | 255 | 品牌名称 |
First_char | Varchar | 1 | 品牌首字母 |
在pinyougou-sellergoods-interface工程创建BrandService接口
package com.huangwangxin.service;
import com.huangwangxin.pojo.TbBrand;
import java.util.List;
/**
* 品牌服务层接口
*
* @author wangxinhuang
* @date 2018/6/27
*/
public interface BrandService {
/**
* 返回全部列表
* */
public List findAll();
}
在pinyougou-sellergoods-service工程创建BrandServiceImpl
package com.huangwangxin.sellergoods.service.impl;
import com.alibaba.dubbo.config.annotation.Service;
import com.huangwangxin.mapper.TbBrandMapper;
import com.huangwangxin.pojo.TbBrand;
import com.huangwangxin.service.BrandService;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;
/**
* 品牌服务实现
*
* @author wangxinhuang
* @date 2018/6/27
*/
@Service
public class BrandServiceImpl implements BrandService {
@Autowired
private TbBrandMapper brandMapper;
@Override
public List findAll() {
return brandMapper.selectByExample(null);
}
}
在pinyougou-manager-web创建BrandController类
package com.huangwangxin.manager.controller;
import com.alibaba.dubbo.config.annotation.Reference;
import com.huangwangxin.pojo.TbBrand;
import com.huangwangxin.service.BrandService;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 品牌
*
* @author wangxinhuang
* @date 2018/6/27
*/
@RestController
@RequestMapping("/brand")
public class BrandController {
@Reference
private BrandService brandService;
/**
* 返回品牌全部列表 all list.
*
* @return the list
*/
@RequestMapping("/findAll")
public List findAll() {
return brandService.findAll();
}
}
运行后报错
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'brandServiceImpl': Unsatisfied dependency expressed through field 'brandMapper'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.huangwangxin.mapper.TbBrandMapper' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:587)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:91)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:373)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1348)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:578)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:501)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:760)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:869)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:409)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:291)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:103)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4939)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5434)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:264)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1135)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:844)
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.huangwangxin.mapper.TbBrandMapper' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1509)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1104)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1065)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:584)
... 25 more
原因:创建文件resources/spring/applicationContext-service.xml的时候, 文件名写成applicatinContext,缺少一个字母o,在web.xml中导入出现问题。