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配置。

转载于:https://www.cnblogs.com/lwy19998273333/p/5501938.html

Spring基于注解及SpringMVC相关推荐

  1. spring 基于注解的控制器配置

    http://ttaale.iteye.com/blog/787586 spring 基于注解的控制器配置 博客分类: spring SpringBeanServletMVCWeb 13.12. 基于 ...

  2. Spring 基于注解的配置

    转载自  Spring 基于注解的配置 基于注解的配置 从 Spring 2.5 开始就可以使用注解来配置依赖注入.而不是采用 XML 来描述一个 bean 连线,你可以使用相关类,方法或字段声明的注 ...

  3. 从源码分析 Spring 基于注解的事务

    从源码分析 Spring 基于注解的事务 在spring引入基于注解的事务(@Transactional)之前,我们一般都是如下这样进行拦截事务的配置: <!-- 拦截器方式配置事务 --> ...

  4. Spring基于注解的方式二

    Spring基于注解二 上一次介绍了很多的关于spring的基本的注解,这篇文章描述一下关于Spring注解的基本的原理,从简单的例子入手 @Configuration @Import({Color. ...

  5. Spring基于注解的方式一

    Spring基于注解的方式一 Spring注解简介 之前的时候我们学习的Spring都是基于Spring配置文件的形式来编写,现在很多的情况下使用SpringBoot的时候是基于注解的形式,这里我们首 ...

  6. (spring-第4回【IoC基础篇】)spring基于注解的配置

    (spring-第4回[IoC基础篇])spring基于注解的配置 基于XML的bean属性配置:bean的定义信息与bean的实现类是分离的. 基于注解的配置:bean的定义信息是通过在bean实现 ...

  7. Spring基于注解的自动装配

    Spring基于注解的自动装配 基于XML的自动装配是在配置文件的bean里设置autowire属性,有byType,byName的方式.而基于注解的自动装配同样是这样只不过我们直接在成员变量上直接标 ...

  8. Spring基于注解TestContext 测试框架使用详解

    原创整理不易,转载请注明出处:Spring基于注解TestContext 测试框架使用详解 代码下载地址:http://www.zuidaima.com/share/1775574182939648. ...

  9. 【Spring】spring基于注解的声明式事务控制

    结构 domin package com.itheima.domain;import java.io.Serializable;public class Account implements Seri ...

  10. spring基于注解的IOC以及IoC的案例——概念

    1.spring中ioc的常用注解 2.案例使用xml方式和注解方式实现单表的CRUD操作     持久层技术选择:dbutils 3.改造基于注解的ioc案例,使用纯注解的方式实现     spri ...

最新文章

  1. 预测|十张图带你了解2018年机器人行业趋势与前景
  2. 发布Web应用程序时发生的“xx.aspx.cs文件不存在”错误
  3. php 编程祝新年快乐_AnyCodes:免费的在线编程神器
  4. Invalid ADAPTORNAME specified. Type 'imaqhwinfo' for a list of available ADAPTORNAMEs. Image acquisi
  5. Golang gorouting 并发控制 sync.WaitGroup 介绍与使用
  6. 创建线程后为什么马上调用CloseHandle()来关闭句柄
  7. 三白话经典算法系列 Shell排序实现
  8. 深度学习弯道超车,领先行业不止一点点
  9. poj2186Popular Cows(Kosaraju算法--有向图的强连通分量的分解)
  10. 霍强:创新研究到底应该怎么做?
  11. javascript 怎样才能确定参数变量的个数呢?
  12. js计算两个时间相差月份
  13. Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.8.2:deploy
  14. openlayers中比例尺的计算原理
  15. matlab矩阵四分位数,中位数,四分位数
  16. 三阶魔方快速还原法还原方法
  17. 从药价高昂引申的思考
  18. 中控考勤机日期混乱,解决日期显示问题
  19. pythonista是干什么_说一说,我到底是做什么的?
  20. 使用ICSharpCode.SharpZipLib对文件进行压缩或解压

热门文章

  1. 如何永久的关闭macOS 更新提示?
  2. ubuntu 的重要一课
  3. Linux 系统恢复误删除 Linux文件
  4. eclipse无法启动的各种解决方法
  5. 又丢脸了,“要源码上门自取”,结果美女真上门了!国内企业再惹争议
  6. 华为搜索引擎面世,百度搜索有点危险了!
  7. 别人工作2年半跳槽面试阿里,成功拿到offer,为什么你不可以?
  8. BAT变TAT?2019年互联网各梯队排名重组
  9. 中国顶级程序员有多牛?一个弄哭韩国,一个堪称阿里“扫地僧”
  10. 为什么微盟耗时 7 天 7 夜才找回删库数据?