文档章节

SpringMVC

全栈路
 全栈路
发布于 2017/02/23 18:21
字数 996
阅读 8
收藏 0

1,在使用Spring的过程中,为了避免大量使用Bean注入的Xml配置文件,我们会采用Spring提供的自动扫描注入的方式。只需要添加几行自动注入的配置,便可以完成Service层,Controller层等等的注入设置。使用过程中,在Service层中的实现类头上架@Compopnet注解,在Controller类头加@Controller注解,便完成了配置。

2,@Service用于标注业务层组件。(业务层)

    @Controller用于标注控制层组件。(入struts中的action)。(控制层)

    @Repository用于标注数据访问组件,即DAO组件。(持久层)

    @Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。

这四个注释是等效的。

 

3,component-scan 标签默认情况下自动扫描指定路径下的包(含所有子包), 将带有@Component、@Repository、@Service、@Controller标签的类自动注册到spring容器中。

4, getBean的默认名称是类名(头字母小写),如果想自定义,可以@Service(“aaaaa”)这样来指定 。

这种bean默认是"singleton",如果想改变,可以使用@Scope("prototype")来改变。

可以使用以下方式指定初始化方法和销毁方法。

@PostConstrut

public void init(){

}

@PreDestory

public void destory(){

}

 

5,属性加上@Autowired注释使得接口可以被容器注入,如:

@Autowired

@Qualifier("chinese")

private Man man;

@Resource和@Autowired都是做bean的注入时使用,其实@Resource并不是Spring的注解,它的包是javax.annotation.Resource,需要导入,但是Spring支持该注解的注入。

(1),共同点

两者都可以写在字段和setter方法上。两者如果都写在字段上,那么就不需要再写setter方法。

(2),不同点

@Autowired为Spring提供的注解,需要导入包org.springframework.beans.factory.annotation.Autowired;只按照byType注入。

6,@requestParam

@requestParam主要用于在SpringMVC后台控制层获取参数,类似一种是request.getParameter("name"),它有三个常用参数: defaultValue = "0", required = false, value = "isApp"; defaultValue表示设置默认值,required通过boolean设置是否是必须要传入的参数,value值表示接受的传入的参数类型。

7,@ResponseBody

作用 : 该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。

使用时机 : 返回的数据不是html标签的页面,而是其他某种格式的数据时(如json.xml等)使用;

8,@Component

相当于通用的注解,当不知道一些类归到哪个层时使用,但不建议。

9,@Repository

用于注解dao层,在daoImpl类上面注解。

 

Request.getParameter()获取的String可直接

 

10,@SessionAttributes, @ModelAttribute

该注解用来绑定HttpSession中的attribute对象的值,便于在方法中的参数里使用。

该注解有value、type两个属性,可以通过名字和类型指定要使用的attribute对象;

@SessionAttributes("pet")

public class EditPetForm{

}

@ModelAttribute

该注解有两个用法,一个是用于方法上,一个是用于参数上;

用于方法上时:通常用来处理@RequestMapping之前,为请求绑定需要从后台查询的model;

用于参数上时:用来通过名称对应,把相应名称的值绑定到注解的参数bean上;要绑定的值来源于:

A)@SessionAttributes启用的attribute对象上;

B)@ModelAttribute用于方法上时指定的model对象;

C)上述两种情况都没有时,new一个需要绑定的bean对象,然后把request中按名称对应的方式把值绑定到bean中。

 

@ModelAttribute

public Account addAccount(@RequestParam String number){

    return accountManager.findAccount(number);

}

 

 

二, 细化SpringMVC

1,DispatcherServlet:是整个Spring MVC的核心。它负责接收HTTP请求组织协调Spring MVC的各个组成部分。其主要工作有以下三项:

1),截取符合特定格式的URL请求。

2),初始化DispatcherServlet上下文对应的WebApplicationContext,并将其与业务层、持久层的WebApplicationContext建立关联。

3),初始化Spring MVC的各个组成组件,并装配到DispatcherServlet中。

 

 

 

© 著作权归作者所有

上一篇: 算法LPF
下一篇: ·分布式架构
全栈路
粉丝 0
博文 28
码字总数 12207
作品 0
昌平
程序员
私信 提问

暂无文章

威胁快报|新兴挖矿团伙借助shodan作恶,非web应用安全再鸣警钟

近日,阿里云安全发现了一个使用未授权访问漏洞部署恶意Docker镜像进行挖矿的僵尸网络团伙。我们给这一团伙取名为Xulu,因为该团伙使用这个字符串作为挖矿时的用户名。 Xulu并不是第一个攻击...

阿里云官方博客
27分钟前
3
0
MD5 加密需要注意编码格式!!!

相信做过MD5加密的童鞋都遇到过字符编码的坑,一般加密出来的结果和其他人不一样都是字符编码不一致导致的,比如类文件的字符编码、浏览器的字符编码等和对方不一致,所以就需要转码统一字符...

jason_kiss
29分钟前
2
0
python中字符串的操作

https://www.jianshu.com/p/7fc851b6a7ee

writeademo
38分钟前
1
0
如何制定 Java 性能调优标准?

想让你的程序更快更稳,但是系统经常出各种 bug,无从下手?Java 性能调优全攻略来啦! 我有一个朋友,有一次他跟我说,他们公司的系统从来没有经过性能调优,功能测试完成后就上线了,线上也...

Java领航员
39分钟前
2
0
java博客项目

项目地址:https://github.com/otale/tale 项目演示地址:https://tale.biezhi.me/ 项目介绍:Tale使用轻量级mvc框架Blade进行开发,默认主题使用漂亮的pinghsu, 特征 设计简洁,界面美观 ...

编程资源库
39分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部