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配置到 ...
随机推荐
- Windows下MongoDB环境搭建
MongoDB下载 登录MongoDB官网:www.mongodb.org:点击[Download MongoDB]按钮,进入如下所示界面 选择目标操作系统及其版本,比如这里选择的是64位的Windo ...
- 重签名问题:does not have a signature matching
今天在家里电脑重签名过的apk拿到公司来用装到模拟器上,运行Robotium测试用例时,报了如下错误,原本以为是工程里的activity名称和包名写错了呢,检查了一遍发现木有错误呀.... 好吧,那我 ...
- Android(Xamarin)之旅(二)
新的一年,新的开始,2016,我要做什么,大家要做什么,啦啦啦. OK,上篇已经介绍了几个简单的控件,这次,我们继续说说控件.但是可能有人认为这有什么难的,问题不在这里,而在于,如果你注意了每一个空间 ...
- 团队作业week2
软件分析和用户需求调查 (2013) 具体内容参看邹欣老师的博客:http://www.cnblogs.com/xinz/p/3308608.html. 作业提交期限:2013年9月25日上课前.
- andorid lint
(一)Lint简介 Android SDK提供了一个代码扫描工具,称为lint.可以帮助您轻松地识别并纠正问题与结构质量的代码,不必执行应用程序或编写任何测试用例.每个问题检测到该工具报告的一个描述消 ...
- noip2014-day1-t2
题目描述:无向连通图G 有n 个点,n - 1 条边.点从1 到n 依次编号,编号为 i 的点的权值为W i ,每条边的长度均为1 .图上两点( u , v ) 的距离定义为u 点到v 点的最短距离. ...
- Jade之注释
注释 jade注释可以保留在编译后生成的html中,也可以不保留. jade: // 这个会保留下来 p Hello //- 这个不会保留 p World html: // 这个会保留下来 <p ...
- 无需部署的轻量级数据库—SQLLite,使用Demo
当有程序需要保存轻量数据,而又烦躁序列化到本地的不便,轻量级数据库—SQLLite是一个很好的选择,只需引用System.Data.SQLite.DLL,无需部署数据库,便可像拥有数据库一样保存数据, ...
- keil 的头文件 .
许多初学者使用网上下载的程序时都会遇到这样一个问题,就是头文件找不到.我想就这个问题说明一下./·首先,我们用到的KEIL有几种版本的,头文件也不同.有reg51.h和at89x51.h两种比较常见. ...
- [Leetcode][JAVA] Populating Next Right Pointers in Each Node II
Follow up for problem "Populating Next Right Pointers in Each Node". What if the given tre ...