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的更多相关文章

  1. SpringMVC札集(03)——基于注解的SpringMVC入门完整详细示例

    自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程03–onL ...

  2. 基于注解的springmvc开发

    原理简析 1. 背景知识:org.springframework.web.ServletContainerInitializer接口 在基于注解的servlet开发中,ServletContainer ...

  3. Spring基于注解的Cache支持

    Spring为我们提供了几个注解来支持Spring Cache.其核心主要是@Cacheable和@CacheEvict.使用@Cacheable标记的方法在执行后Spring Cache将缓存其返回 ...

  4. Spring 基于注解零配置开发

    本文是转载文章,感觉比较好,如有侵权,请联系本人,我将及时删除. 原文网址:< Spring 基于注解零配置开发 > 一:搜索Bean 再也不用在XML文件里写什么配置信息了. Sprin ...

  5. 阶段3 2.Spring_08.面向切面编程 AOP_9 spring基于注解的AOP配置

    复制依赖和改jar包方式 src下的都复制过来. 复制到新项目里了 bean.xml里面复制上面一行代码到下面.把aop改成context. 配置spring容器创建时要扫描的包 Service的配置 ...

  6. 基于注解的SpringMVC简单介绍

    SpringMVC是一个基于DispatcherServlet的MVC框架,每一个请求最先访问的都是DispatcherServlet,DispatcherServlet负责转发每一个Request请 ...

  7. SpringMVC学习总结(四)——基于注解的SpringMVC简单介绍

    SpringMVC是一个基于DispatcherServlet的MVC框架,每一个请求最先访问的都是 DispatcherServlet,DispatcherServlet负责转发每一个Request ...

  8. 【转载】基于注解的SpringMVC简单介绍

    SpringMVC是一个基于DispatcherServlet的MVC框架,每一个请求最先访问的都是DispatcherServlet,DispatcherServlet负责转发每一个Request请 ...

  9. Spring基于注解自动装配

    前面我们介绍Spring IoC装载的时候,使用XML配置这种方法来装配Bean,这种方法可以很直观的看到每个Bean的依赖,但缺点也很明显:写起来非常繁琐,每增加一个组件,就必须把新的Bean配置到 ...

随机推荐

  1. java核心知识点学习----并发和并行的区别,进程和线程的区别,如何创建线程和线程的四种状态,什么是线程计时器

    多线程并发就像是内功,框架都像是外功,内功不足,外功也难得精要. 1.进程和线程的区别 一个程序至少有一个进程,一个进程至少有一个线程. 用工厂来比喻就是,一个工厂可以生产不同种类的产品,操作系统就是 ...

  2. AngularJS学习--- AngularJS中的模板template和迭代器过滤filter step2 step3

    1.AngularJS 模板---step2: mvc(Model-View-Controller)模式在后端用的比较多,在前端也是一样的常用; 在AngularJS中,一个视图是模型通过HTML模板 ...

  3. mesos框架编译部署

    mesos是什么呢? 一个分布式调度框架,让你编写代码时面对整个集群像面对一台机器那么简单.所有的运行,资源调度都可以由它来帮你搞掂. 1.mesos安装有两种方式: 1)参考官网的getstart, ...

  4. 【golang】go语言,进行并发请求的wrap变参封装

    package main import ( "fmt" "sync" "time" ) type WaitGroupWrapper stru ...

  5. python数据处理相关的一些知识点(学习点)

    自己总结了一下就是存储,消息处理(异步,阻塞,队列,消息中间件) 参考岗位需求 数据爬虫工程师的岗位职责:1.分布式网络爬虫研发:不断完善现有抓取系统,通过对抓取.解析.调度.存储等模块的拆分与优化, ...

  6. hdoj 1874 畅通工程续

    Problem Description 某省自从实行了很多年的畅通工程计划后,终于修建了很多路.不过路多了也不好,每次要从一个城镇到另一个城镇时,都有许多种道路方案可以选择,而某些方案要比另一些方案行 ...

  7. [ACM] poj 1064 Cable master (二分查找)

    Cable master Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 21071   Accepted: 4542 Des ...

  8. 第一个Struts1步骤

    一.前端 :登陆页面 index.jsp <%@ page language="java" import="java.util.*" pageEncodi ...

  9. Spring MVC 3 深入总结

      一.前言: 大家好,Spring3 MVC是非常优秀的MVC框架,由其是在3.0版本发布后,现在有越来越多的团队选择了Spring3 MVC了.Spring3 MVC结构简单,应了那句话简单就是美 ...

  10. C++混合编程之idlcpp教程Lua篇(3)

    上一篇 C++混合编程之idlcpp教程Lua篇(2) 是一个 hello world 的例子,仅仅涉及了静态函数的调用.这一篇会有新的内容. 与LuaTutorial0相似,工程LuaTutoria ...