实习-Spring框架

Spring框架由七个模块组成:

如果作为一个整体,这些模块为我们提供了开发企业应用所需的一切。但我们不必将应用完全基于Spring框架。我们可以自由地挑选适合自己的应用的模块而忽略其余的模块。

Spring MVC框架:

在之前的两个小项目中,我们只使用了如下几个部分:

1. Controller

  • 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Model 返回给对应的View 进行展示。

        

  • @Controller:定义Controller 控制器

         我们的@Controller 是标记在类FeedbackController上面的,所以类FeedbackController就是一个SpringMVC Controller 对象了。

  • @RequestMapping:映射 Request 请求与处理器

        我们此处有两个RequestMapping:

        sendFeedback方法上:

        @RequestMapping(“/sendFeedback”) 标记在Controller 方法上,表示当请求/sendFeedback.do 的时候访问的是FeedbackController的sendFeedback方法,该方法返回了一个包括Model 和View 的ModelAndView 对象。 

         FeedbackController类上:

        当@RequestMapping()标记在Controller 上的时候,里面使用@RequestMapping 标记的方法的请求地址都是相对于类上的@RequestMapping 而言的;当Controller 类上没有标记@RequestMapping 注解时,方法上的@RequestMapping 都是绝对路径。这种绝对路径和相对路径所组合成的最终路径都是相对于根路径“/ ”而言的。

        我们在Controller上加了@RequestMapping("/feedback")注解,所以当需要访问到里面使用@RequestMapping("sendFeedback") 标记的方法sendFeedback() 的时候就需要使用sendFeedback方法上@RequestMapping 相对于控制器FeedbackController上@RequestMapping 的地址,即/feedback/sendFeedback.do 。

  • @ResponseBody:将java对象转为json格式的数据,然后直接写入HTTP response 的body中;一般在异步获取数据时使用

        @ResponseBody注解的作用是将controller的方法返回的对象 通过适当的转换器 转换为指定的格式之后,写入到response对象的body区(响应体中),通常用来返回JSON数据或者是XML。我们要通过@ResponseBody 注解 将返回的json字符串放入响应体中,然后在前台js才能拿到json字符串进行解析,如果不加,响应体中就没有放入json字符串,前台是拿不到数据的。

  • @Autowired:

        @Autowired可以标注在属性上、方法上和构造器上,来完成自动装配。默认是根据属性类型,spring自动将匹配到的属性值进行注入,然后就可以使用这个属性autoWiredBean对象的方法。

*参考资料:@controller深入详解_id_lian的博客-CSDN博客@ResponseBody用法详解_笑尘~Y的博客-CSDN博客@ResponseBody注解的作用_Evan Wang的博客-CSDN博客@Autowired注解详解——超详细易懂_子时不睡的博客-CSDN博客

2. Service

Service层叫服务层,被称为服务,粗略的理解就是对一个或多个DAO进行的再次封装,封装成一个服务。业务模块的逻辑功能设计,和DAO层一样都是先设计接口,再创建要实现的类,然后在配置文件中进行配置其实现的关联。接下来就可以在service层调用接口进行业务逻辑应用的处理。
好处:封装Service层的业务逻辑有利于业务逻辑的独立性和重复利用性。
 

                        

  • @Service:定义Service类

        @Service注解用于类上,标记当前是一个service类,加上该注解会将当前类自动注入到Spring容器中,不需要再在applicationContext.xml文件定义bean了。在调用该service时只需要将该类注入接口中即可:如,在feedbackController中,我们注入了feedbackservice,以便后续使用。

                ​​​​​​​        

 ​​​​​​​                

*参考资料:java中的service层,dao层,controller层的理解_依嘫_吃代码的博客-CSDN博客

3. Dao

Dao层是数据访问层,接口实现层(底层),与mybatis有紧密的联系。一般实现对数据内容的增删改查。一个DAO一定是和数据库的某一张表对应的,其中封装了增删改查基本操作。

4. View

使用jsp进行编写,可以理解为一种前端语言。一般我们在此向后端发送请求,并获取返回的数据进行解析和展示。

*参考资料:JSP(java服务器页面)_百度百科

总而言之,Dao是底层,可以借助数据表实现增删改查的功能。然后service层可以将一个或多个dao层封装成为一个服务,controller层转发,接受页面传的参数,由service处理检查数据的合理性,controller接到返回值传给页面。

*参考资料:java中的service层,dao层,controller层的理解_依嘫_吃代码的博客-CSDN博客

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值