Spring基于注解及SpringMVC
1.使用注解
(1)组件扫描
指定一个包路径,Spring会自动扫描该包
及其子包所有组件类,当发现组件类定义前有
特定的注解标记时,就将该组件纳入到Spring
容器。等价于原有XML配置中的<bean>定义功能。
组件扫描可以替代大量XML配置的<bean>定义。
(2)如何使用
step1,在配置文件当中,添加
<context:component-scan base-package=""/>
让容器扫描指定的包及其子包下面的类。
step2,在类前面添加
@Component
注1:
默认情况下,bean的id是首字母小写之后
的类名,如果想重新命名id,可以使用
@Component()形式。
注2:
@Repository:用于持久层组件
@Service:用于业务层组件
@Controller:用于控制器组件
(3)生命周期相关的几个标注
@PostConstruct 初始化方法
@PreDestroy 销毁方法
(4)作用域
@Scope("prototype")
注: 缺省值是"singleton"
(5)延迟加载(了解)
@Lazy(true)
注: 缺省值是false。
在默认情况下,容器启动之后,会将所有
作用域为"singleton"的bean实例化。
如果延迟加载,则不会将这些bean
实例化。
(6)依赖注入相关的几个标注
@Autowired和@Qualifier
@Autowired可以用于构造器注入,
也可以用于set方式注入。
1)构造器注入
a. @Autowired加在构造器前面。
b. @Qualifier加在参数前面,用于
指定要注入的bean的id。
注:
注入的对象单例时,@Qualifier可省略。
此时,Spring按照类型匹配参数。
2)set方式注入
a.@Autowired加在set方法前面。
b. @Qualifier加在参数前面,用于
指定要注入的bean的id。
注:
注入的对象单例时,@Qualifier可省略。
此时,Spring按照类型匹配参数。
c.@Autowired也可以直接添加到属性前面,
此时,可以不写set方法。
@Resource
a.该标注只支持set方式注入
b.可以将该标注加到set方法前面,
name属性用于指定要注入的bean的id。
c.该标注也可以直接添加到属性前,
此时,可以不写set方法。
(7)使用spring表达式的标注
@Value
用法一
@Value("#{spring表达式}")
用法二
@Value("基本类型的值")
注:
@Value可以用在属性前,也可以用
在set方法前面。
2.spring mvc
(1)spring mvc简介
是一个mvc框架,简化基于mvc架构的
web应用的开发。
注:
a.不再需要写控制器了,spring mvc
提供了一通用的控制器。
b.可以将java类将交spring容器来管理,
方便解耦。
c.提供了很多有用的jsp标签。
(2)五大组件
a.DispatcherServlet(前端控制器):
接受请求,将请求分发给相应的
Controller来处理。
b.HandlerMapping
告诉DispatcherServlet,请求地址
与Controller的对应关系。
c.Controller(二级控制器)
负责处理业务逻辑。
d.ModelAndView
封装了处理结果和视图名。
e.ViewResolver(视图解析器)
依据视图名,返回真正的页面的名称。
注:
请求先发送给DispatcherServlet,
DispatcherServlet依据HanlderMapping
的指示,调用对应的Controller来处理。
Controller将处理结果封装成ModelAndView
并返回给DispatcherServle。
DispatcherServlet调用ViewResolver,
ViewResolver依据视图名返回真正的页面
的名称给DispatcherServlet。
最后,DispatcherServlet会调用真正的
页面(通常是jsp)。
(3)编程步骤
step1,将spring mvc相关的jar文件添加到
WEB-INF\lib下。
step2,添加spring的配置文件(
springmvc.xml)。
step3,配置DispatcherServlet(web.xml)
注:
DispatcherServlet的初始化方法在
执行时,会启动spring容器。
step4,Controller
step5,jsp
step6,完成springmvc.xml配置。
Spring基于注解及SpringMVC的更多相关文章
- SpringMVC札集(03)——基于注解的SpringMVC入门完整详细示例
自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程03–onL ...
- 基于注解的springmvc开发
原理简析 1. 背景知识:org.springframework.web.ServletContainerInitializer接口 在基于注解的servlet开发中,ServletContainer ...
- Spring基于注解的Cache支持
Spring为我们提供了几个注解来支持Spring Cache.其核心主要是@Cacheable和@CacheEvict.使用@Cacheable标记的方法在执行后Spring Cache将缓存其返回 ...
- Spring 基于注解零配置开发
本文是转载文章,感觉比较好,如有侵权,请联系本人,我将及时删除. 原文网址:< Spring 基于注解零配置开发 > 一:搜索Bean 再也不用在XML文件里写什么配置信息了. Sprin ...
- 阶段3 2.Spring_08.面向切面编程 AOP_9 spring基于注解的AOP配置
复制依赖和改jar包方式 src下的都复制过来. 复制到新项目里了 bean.xml里面复制上面一行代码到下面.把aop改成context. 配置spring容器创建时要扫描的包 Service的配置 ...
- 基于注解的SpringMVC简单介绍
SpringMVC是一个基于DispatcherServlet的MVC框架,每一个请求最先访问的都是DispatcherServlet,DispatcherServlet负责转发每一个Request请 ...
- SpringMVC学习总结(四)——基于注解的SpringMVC简单介绍
SpringMVC是一个基于DispatcherServlet的MVC框架,每一个请求最先访问的都是 DispatcherServlet,DispatcherServlet负责转发每一个Request ...
- 【转载】基于注解的SpringMVC简单介绍
SpringMVC是一个基于DispatcherServlet的MVC框架,每一个请求最先访问的都是DispatcherServlet,DispatcherServlet负责转发每一个Request请 ...
- Spring基于注解自动装配
前面我们介绍Spring IoC装载的时候,使用XML配置这种方法来装配Bean,这种方法可以很直观的看到每个Bean的依赖,但缺点也很明显:写起来非常繁琐,每增加一个组件,就必须把新的Bean配置到 ...
随机推荐
- 技术英文单词贴--W
W widget 小工具,小部件
- HDU 1540 Tunnel Warfare(线段树+区间合并)
http://acm.hdu.edu.cn/showproblem.php?pid=1540 题目大意:抗日战争期间进行地道战,存在n个村庄用地道连接,输入D表示破坏某个村庄(摧毁与其相连的地道, 包 ...
- 编写出色的GNU/Linux程序
http://advancedlinuxprogramming.com提供了本书电子版的免费下载. 1 与执行环境交互 关于参数 C语言程序的main()函数使用两个参数和执行环境交互--(int)a ...
- DOM浏览器文档模型
DOM浏览器文档模型 1.对XHM/XHTML 编写成DOM文档 可形成动态网页 2.'*'获取所有节点 GetElementsByTagName():获取所有的标签名的集合--需要在js中使用win ...
- js原型
1.js基本类型和对象类型 js的简单类型包括数字(其中NaN为数字类型).字符串(类似'A'为字符,js没字符类型).布尔值.null值和undefined值.其他所有的值都是对象.数字.字符串和布 ...
- Jungle Roads
Description The Head Elder of the tropical island of Lagrishan has a problem. A burst of foreign aid ...
- GDI+技术
GDI+是GDI的后继者,它是一种构成 Windows XP 操作系统的子系统的应用程序编程接口. 一般来说有3种基本类型的绘图界面,分别为Windows 窗体上的控件.要发送给打印机的页面和内存中的 ...
- Java 第十章 类和对象
类和对象 类与对象的关系是什么? 答 :类是具有相同属性和方法的一组对象的集合. 类是抽象的,对象是具体的:类是对象的模版,对象是类的实例. 定义一个类的语法是什么? public class 类名{ ...
- iOS 设置navigationBar背景
- (void)viewWillAppear:(BOOL)animated { [superviewWillAppear:animated]; [self.navigationContro ...
- Remoting首次用时偏长问题
先说我遇到的问题,我需要访问多个服务器的一个相同的Remoting方法,根据方法返回的结果决定优先使用某个服务器. var _remoteFacade = Activator.GetObject(ty ...