spring和springMVC注解配置详解。。。。。。大神进!!!!!

DY1201 Java工程师  2015-10-21 05:48:01
我们在用spring和springMVC框架的时候,知道我们controller一般加上两个注解一个@controller和@requestmapping。还有@service等。我想问这些注解是属于spring的东西还是springMVC啊?
另外在spring的配置文件中有<context:component-scan base-package="com.dc.crm.**.web" />这样一句话用于开启注解驱动,同样在springMVC中也有一段类似于这句话的<context:component-scan base-package="com.dc.crm.**.**" />也是跟注解驱动有关。现在整个人都让给整蒙了。
描述完成之后我有以下问题:
1,这些注解是属于spring的东西还是springMVC啊?(如果都有的话,那些属于那些?)
2,两个配置文件里面的context:component-scan base-package=“XXXXX”各起到什么作用,如果去掉其一可以吗?
3,base-package="com.dc.crm.**.web 里面的**是不是代表着中间可以有任意的文件夹啊?如果是这样的话,那么base-package="com.dc.crm.**.**"这个里面的**.**又是什么意思啊?

注:百度了资料,感觉看的云里雾里。有些疑问也得不到解答。只有来这求助大神了。。。。。。。

坐等大神!!!!!!!!

...全文
924 点赞 收藏 21
写回复
21 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
CrryIT 2015-10-23
我就知道 spring 是一个中介 其他的 受教了
回复
我叫小菜菜 2015-10-22
mark! 学习学习。。。 今晚搜了很多关于spring和spring mvc的,也大概了解,还差自己搭一遍环境搞个demo~ 单位项目就是spring +mybatis+mysql的,准备抄袭一下精华 半吊子入门难啊
回复
Usher丶AckMan 2015-10-22
看了以上评论,我是这么认为的。 1.spring其实就是联系service和dao层的,简单来说就是一个粘合剂。所以在service和dao层的注释都是spring的。 2.springMVC其实就是控制器的一个框架,相当于struts中的action,那么在action的注释,都是springMVC这个框架的 3.所以你搞清楚每个框架的位置,自然而然就知道配置文件里面的信息是帮助那一层的了。
回复
sinat_31535993 2015-10-22
一般springmvc的注解只会出现在控制层,类似struts2的action,而spring的注解一般都是自动注入,标识仓储,管理事务的作用。 两个配置文件中context:component-scan 标签是对于他们自己管理下的注解,不冲突,而且注解开发的话,都需要
回复
scmod 2015-10-22
引用 6 楼 Itsjd 的回复:
引用 2 楼 scmod 的回复:
看下在webmvc包里的就是mvc的...
能给说一下在使用注解开发的时候,都需要那些spring的包和springMVC的包吗?
看要用啥.... core,bean,context这几个基础的要的,web,webmvc一般也要的 然后tx数据库事务要的,要支持事务还要有aop包好像,aop面向切面编程用的... 用maven管理的话有依赖关系的像加个web跟webmvc他自己会把core什么的依赖关系的都下过来... 应该漏了好多~还有什么jdbc什么的...可以下个all的那种什么都在里面了
回复
心随自在飞 2015-10-22
引用 15 楼 Itsjd 的回复:
[quote=引用 13 楼 xiesq5112 的回复:] [quote=引用 9 楼 Itsjd 的回复:] [quote=引用 7 楼 shijing266 的回复:] 1、因为** 涵括量太多了,后面加个.web ,是说明在.web的包下面的控制器才被注入 2、是的,不过他已经确定了包的层级
如果去掉spring配置文件里面的context:component-scan留着springMvc里面的context:component-scan,那么我的controller还能起到作用吗?(抛开service和dao不管)[/quote] 有木有作用,试试就知道了,自己实践出的更有韵味![/quote] @service来自import org.springframework.stereotype.Service; @controller来自import org.springframework.stereotype.Controller; @repository来自import org.springframework.stereotype.Repository; @autowire来自import org.springframework.beans.factory.annotation.Autowired; @requestmapping来自import org.springframework.web.bind.annotation.RequestMapping; 由此看来好像service和controller和repository是来自同一个包的 不知道怎么解释他们属于两个包 我试了,服务器启动不报错,访问项目 2015-10-22 15:29:42 WARN [org.springframework.web.servlet.PageNotFound] - No mapping found for HTTP request with URI [/EBCrm] in DispatcherServlet with name 'spring3'[/quote] 给你推荐一个博文 Spring注解@Component、@Repository、@Service、@Controller区别
回复
sinat_31535993 2015-10-22
引用 8 楼 Itsjd 的回复:
[quote=引用 3 楼 sinat_31535993 的回复:] 一般springmvc的注解只会出现在控制层,类似struts2的action,而spring的注解一般都是自动注入,标识仓储,管理事务的作用。 两个配置文件中context:component-scan 标签是对于他们自己管理下的注解,不冲突,而且注解开发的话,都需要
如果去掉spring配置文件里面的context:component-scan留着springMvc里面的context:component-scan,那么我的controller还能起到作用吗?(抛开service和dao不管)[/quote] 可以啊,他俩没关系的一一对应
回复
DY1201 2015-10-22
引用 13 楼 xiesq5112 的回复:
[quote=引用 9 楼 Itsjd 的回复:] [quote=引用 7 楼 shijing266 的回复:] 1、因为** 涵括量太多了,后面加个.web ,是说明在.web的包下面的控制器才被注入 2、是的,不过他已经确定了包的层级
如果去掉spring配置文件里面的context:component-scan留着springMvc里面的context:component-scan,那么我的controller还能起到作用吗?(抛开service和dao不管)[/quote] 有木有作用,试试就知道了,自己实践出的更有韵味![/quote] @service来自import org.springframework.stereotype.Service; @controller来自import org.springframework.stereotype.Controller; @repository来自import org.springframework.stereotype.Repository; @autowire来自import org.springframework.beans.factory.annotation.Autowired; @requestmapping来自import org.springframework.web.bind.annotation.RequestMapping; 由此看来好像service和controller和repository是来自同一个包的 不知道怎么解释他们属于两个包 我试了,服务器启动不报错,访问项目 2015-10-22 15:29:42 WARN [org.springframework.web.servlet.PageNotFound] - No mapping found for HTTP request with URI [/EBCrm] in DispatcherServlet with name 'spring3'
回复
DY1201 2015-10-22
引用 12 楼 shijing266 的回复:
还有,多看看spring的原理书 。 还有spring mvc官网,这些对你理解有帮助
谢啦!想问一下 @service来自import org.springframework.stereotype.Service; @controller来自import org.springframework.stereotype.Controller; @repository来自import org.springframework.stereotype.Repository; @autowire来自import org.springframework.beans.factory.annotation.Autowired; @requestmapping来自import org.springframework.web.bind.annotation.RequestMapping; 由此看来好像service和controller和repository是来自同一个包的 不知道怎么解释他们属于两个包
回复
DY1201 2015-10-22
引用 4 楼 KcCoO 的回复:
看了以上评论,我是这么认为的。 1.spring其实就是联系service和dao层的,简单来说就是一个粘合剂。所以在service和dao层的注释都是spring的。 2.springMVC其实就是控制器的一个框架,相当于struts中的action,那么在action的注释,都是springMVC这个框架的 3.所以你搞清楚每个框架的位置,自然而然就知道配置文件里面的信息是帮助那一层的了。
@service来自import org.springframework.stereotype.Service; @controller来自import org.springframework.stereotype.Controller; @repository来自import org.springframework.stereotype.Repository; @autowire来自import org.springframework.beans.factory.annotation.Autowired; @requestmapping来自import org.springframework.web.bind.annotation.RequestMapping; 由此看来好像service和controller和repository是来自同一个包的 不知道怎么解释他们属于两个包
回复
心随自在飞 2015-10-22
引用 9 楼 Itsjd 的回复:
[quote=引用 7 楼 shijing266 的回复:] 1、因为** 涵括量太多了,后面加个.web ,是说明在.web的包下面的控制器才被注入 2、是的,不过他已经确定了包的层级
如果去掉spring配置文件里面的context:component-scan留着springMvc里面的context:component-scan,那么我的controller还能起到作用吗?(抛开service和dao不管)[/quote] 有木有作用,试试就知道了,自己实践出的更有韵味!
回复
还有,多看看spring的原理书 。 还有spring mvc官网,这些对你理解有帮助
回复
你说呢? 这两者是分开的,少写一个都不行,至于解释,请看楼上所有的描述吧
回复
DY1201 2015-10-22
引用 7 楼 shijing266 的回复:
1、因为** 涵括量太多了,后面加个.web ,是说明在.web的包下面的控制器才被注入 2、是的,不过他已经确定了包的层级
假如<context:component-scan base-package="com.dc.crm.**.web" />这样配置 那么我的com.dc.crm.service和com.dc.crm.dao能够被注入吗??
回复
DY1201 2015-10-22
引用 7 楼 shijing266 的回复:
1、因为** 涵括量太多了,后面加个.web ,是说明在.web的包下面的控制器才被注入 2、是的,不过他已经确定了包的层级
如果去掉spring配置文件里面的context:component-scan留着springMvc里面的context:component-scan,那么我的controller还能起到作用吗?(抛开service和dao不管)
回复
DY1201 2015-10-22
引用 3 楼 sinat_31535993 的回复:
一般springmvc的注解只会出现在控制层,类似struts2的action,而spring的注解一般都是自动注入,标识仓储,管理事务的作用。 两个配置文件中context:component-scan 标签是对于他们自己管理下的注解,不冲突,而且注解开发的话,都需要
如果去掉spring配置文件里面的context:component-scan留着springMvc里面的context:component-scan,那么我的controller还能起到作用吗?(抛开service和dao不管)
回复
1、因为** 涵括量太多了,后面加个.web ,是说明在.web的包下面的控制器才被注入

2、是的,不过他已经确定了包的层级
回复
DY1201 2015-10-22
引用 2 楼 scmod 的回复:
看下在webmvc包里的就是mvc的...
能给说一下在使用注解开发的时候,都需要那些spring的包和springMVC的包吗?
回复
DY1201 2015-10-22
引用 1 楼 shijing266 的回复:
1、@Controller @RequestMapping 是属于Spring MVC的 其他注解是属于Spring的,你可以这样理解,Spring mvc相当于Struts的action 2、spring文件里面的配置是 自动注解service和dao 等, mvc文件里面的自动扫描是扫描controller 3、是的,文件路径的问题
第三个问题,**代表所有文件夹了对吧?那么<context:component-scan base-package="com.dc.crm.**.web" />中的web文件夹还需要写吗?还有如果这样写<context:component-scan base-package="com.dc.crm.**.**" />,那么最后的**是不是就不需要了啊?
回复
scmod 2015-10-21
看下在webmvc包里的就是mvc的...
回复
加载更多回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2015-10-21 05:48
社区公告
暂无公告