SpringMVC和Spring的常用注解及其优缺点

什么是Spring MVC
  • Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面.Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块.使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的Spring MVC框架或集成其他MVC开发框架,如Struts1(现在一般不用),Struts 2(一般老项目使用)等等.
什么是Spring
  • Spring是一个分层的JavaSE/EE full-stack(一站式)轻量级开源框架.
    Spring为不同的层都提供的企业级解决方案:
  • web层:spring mvc
  • service层:spring
  • dao层:JDBCTemplate、Spring data jpa (Java Persistence API)

Spring的核心思想是IoC(控制反转)和AOP(面向切面编程)

常用注解

1.Spring相关注解
1.1声明bean的注解
@Component 通用注解
@Repository 派生注解
@Service 派生注解
@Controller 派生注解
1.2bean注入的相关注解
@Autowired: 按类型注入
@Resource(name="");按名称注入
@Resource();先按名称注入,再按类型注入.
1.3配置类相关注解
@Bean注解在方法上,声明当前方法的返回值为一个bean
@Configuration声明当前类为配置类,内部常使用@Bean进行详细配置.取代了xml文件配置
@ComponentScan用于对Component进行扫描.可以配置扫描的包路径
1.4@Value注解:为属性注入简单值
2.Spring MVC相关注解
@RequestMapping 修饰方法,将请求路径映射到Controller对应的处理方法上
修饰类,给请求路径添加访问前缀
@ResponseBody将返回值转换成json数据,并响应给浏览器.
@RequestBody将json格式的请求参数,封装到指定的JavaBean中.
@PathVariable用于接收路径参数
@PathVariable(“name”),就可以获取name对应的值.
@RestController该注解为一个组合注解,相当于@Controller和@ResponseBody的组合

Spring MVC分层的优缺点

优点:
1、开发人员可以只关注整个结构中的其中某一层;
2、可以很容易的用新的实现来替换原有层次的实现;
3、可以降低层与层之间的依赖;
4、有利于标准化;
5、利于各层逻辑的复用;
缺点:
1、降低了系统的性能.这是不言而喻的.如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成.
2、有时会导致级联的修改.这种修改尤其体现在自上而下的方向.如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码.

Spring 优缺点

优点:
1.方便解耦,简化开发 (高内聚低耦合)
Spring就是一个大工厂(容器),用于创建对象(bean)和维护对象间的依赖关系.
2.AOP编程的支持
Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能.
声明式事务的支持,只需要通过配置就可以完成对事务的管理,而无需手动编程
3.方便程序的测试,
Spring对Junit4支持,可以通过注解方便的测试Spring程序
4.方便集成各种优秀框架
Spring支持各种优秀框架(如:MyBatis、Redis、MongoDB、ElementsSearch、Quartz等)
5.降低JavaEE API的使用难度
Spring 对JavaEE开发中非常难用的一些API(JDBC、JavaMail等),都提供了封装,使这些API应用难度大大降低.

缺点:
1. 中断了应用程序的逻辑,使代码变得不完整,不直观.此时单从Source无法完全把握应用的所有行为.
  2. 将原本应该代码化的逻辑配置化,增加了出错的机会以及额外的负担.
  3. 时光倒退,失去了IDE的支持.在目前IDE功能日益强大的时代,以往代码重构等让人头痛的举动越来越容易.而且IDE还提供了诸多强大的辅助功能,使得编程的门槛降低很多.通常来说,维护代码要比维护配置文件,或者配置文件+代码的混合体要容易的多.
  4. 调试阶段不直观,后期的bug对应阶段,不容易判断问题所在.

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值