Spring框架学习(6)使用ioc注解方式配置bean
内容源自:使用ioc注解方式配置bean
context层 :
上下文环境/容器环境 applicationContext.xml
1 ioc注解功能
注解 简化xml文件配置 如 hibernate 映射文件
ioc注解 简化 ioc容器的配置
1 bean对象定义过程
@Component
该注解用于标注一个类
标注哪些需要使用ioc管理/实例化的类
被标注的类会成为ioc实例化的对象
ioc容器解析时,会在工程中扫描所有被该注解标注的类,使用ioc方式对其进行实例化。
@Controller 用于标注业务逻辑对象 xxServlet xxAction xxController
@Service 用于标注服务类型对象 xxService xxServiceImpl
@Repository 用于标注持久化对象 xxDao xxDaoImpl 这三个注解的使用方式和作用效果与@Component一模一样 为了程序开发的规范性,尽量什么类型的对象就使用什么注解进行标注。
2 bean之间的注入过程
@Autowired 自动装载。该注解用于标注目标对象中的一个属性,根据被标注属性的属性名和属性类型在ioc容器中查找匹配的bean,从而得到需要的bean对象。
具体示例:
现在ioc容器中添加context层支持:
包括添加xmlns:context、xsi:schema、注解扫描地址
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd"> <!-- ioc注解功能 ~ context层 导入context层对应的命名空间和schame文件 如果包结构太多,直接扫描com --> <context:component-scan base-package="com.etoak.action,com.etoak.dao"></context:component-scan> </beans>
LoginAction.java:
这里面注意@Component中的参数la可以写也可以不写,写上了就指定了bean对象的id值,默认为类名开头字母小写loginAction.
@Component("la") // <bean id="la" class="xx.LoginAction"/> public class LoginAction { @Autowired private UserDaoImpl ud; /** * 首先根据被标注属性的属性名'ud' * 在ioc容器中查找一个 id="ud" 的bean进行注入 * 再根据被标注属性的属性类型 'UserDaoImpl' * 在ioc容器中查找一个 class="UserDaoImpl" 的bean进行注入 * @return */ public String execute() { System.out.println("处理客户端提交的login.action请求"); ud.login(); return "success"; } }
UserDaoImpl.java
@Component // <bean id="userDaoImpl" class="xx.UserDaoImpl"/> public class UserDaoImpl { public boolean login(){ System.out.println("连接数据库判断登录是否成功"); return true; } }
测试类:
public class Test { public static void main(String[] args) { ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); /** * 1 在使用注解方式实例化bean对象时 * 由于没有为其设置具体的ID值 */ LoginAction la = ac.getBean(LoginAction.class); /** * 2 虽然没有手动为其设置ID值 * 但是注解会自动为其提供一个ID值 * 类名 首字母小写 */ UserDaoImpl ud = (UserDaoImpl)ac.getBean("userDaoImpl"); /** * 3 手动为其设置一个ID值 */ LoginAction la2 = (LoginAction)ac.getBean("la"); } }
Spring框架学习(6)使用ioc注解方式配置bean的更多相关文章
- Spring使用ioc注解方式配置bean
context层 : 上下文环境/容器环境 applicationContext.xml 具体示例: 现在ioc容器中添加context层支持: 包括添加xmlns:context.xsi:schem ...
- 跟着刚哥学习Spring框架--通过注解方式配置Bean(四)
组件扫描:Spring能够从classpath下自动扫描,侦测和实例化具有特定注解的组件. 特定组件包括: 1.@Component:基本注解,识别一个受Spring管理的组件 2.@Resposit ...
- spring学习笔记 星球日two - 注解方式配置bean
注解要放在要注解的对象的上方 @Autowired private Category category; <?xml version="1.0" encoding=" ...
- spring框架学习(五)注解
注解Annotation,是一种类似注释的机制,在代码中添加注解可以在之后某时间使用这些信息.跟注释不同的是,注释是给我们看的,Java虚拟机不会编译,注解也是不编译的,但是我们可以通过反射机制去读取 ...
- 码农小汪-spring框架学习之2-spring IoC and Beans 控制反转 依赖注入 ApplicationContext BeanFactory
spring Ioc依赖注入控制反转 事实上这个东西很好理解的,并非那么的复杂. 当某个Java对象,须要调用还有一个Java对象的时候(被依赖的对象)的方法时.曾经我们的做法是怎么做呢?主动的去创建 ...
- Spring框架的AOP技术(注解方式)
1. 步骤一:创建JavaWEB项目,引入具体的开发的jar包 * 先引入Spring框架开发的基本开发包 * 再引入Spring框架的AOP的开发包 * spring的传统AOP的开发的包 * sp ...
- Spring框架中的AOP技术----注解方式
利用AOP技术注解的方式对功能进行增强 CustomerDao接口 package com.alphajuns.demo1; public interface CustomerDao { public ...
- spring之通过注解方式配置Bean(一)
(1)组件扫描:spring能够从classpath下自动扫描.侦测和实例化具有特定注解的组件. (2)特定组件包括: @Component:基本注解,标识一个受spring管理的组件: @Respo ...
- 使用Spring框架入门二:基于注解+XML配置的IOC/DI的使用
一.简述 本文主要讲使用注解+xml配合使用的几种使用方式.基础课程请看前一节. 二.步骤 1.为Pom.xml中引入依赖:本例中使用的是spring-context包,引入此包时系统会自动导入它的依 ...
随机推荐
- vue利用watch侦听对象具体的属性 ~ 巧用计算属性computed做中间层
有时候需要侦听某个对象具体的属性,可以按下面案例进行: <template> <div> <input type="text" v-model=&qu ...
- CentOS 7.4 如何安装 MariaDB 10.3.9 Stable 数据库
CentOS 7.4 如何安装 MariaDB 10.3.9 Stable 数据库 一.CentOS 7.4上卸载 Mariadb 数据库 1.查询所安装的MariaDB组件 [libin@VM_0_ ...
- es6关于let和const的总结
set用于声明变量 1.var 的一个升级版 2.不存在变量提升 console.log(a);//Uncaught ReferenceError: a is not defined let a=1; ...
- HDU 1611 敌兵布阵【线段树模板】
#include<cstdio> #include<string> #include<cstdlib> #include<cmath> #include ...
- 洛谷P2224 [HNOI2001] 产品加工 [DP补完计划,背包]
题目传送门 产品加工 题目描述 某加工厂有A.B两台机器,来加工的产品可以由其中任何一台机器完成,或者两台机器共同完成.由于受到机器性能和产品特性的限制,不同的机器加工同一产品所需的时间会不同,若同时 ...
- 【BZOJ 1216】 1216: [HNOI2003]操作系统 (模拟+优先队列)
1216: [HNOI2003]操作系统 Description 写一个程序来模拟操作系统的进程调度.假设该系统只有一个CPU,每一个进程的到达时间,执行时间和运行优先级都是已知的.其中运行优先级用自 ...
- JZYZOJ 1385 拉灯游戏 状态压缩 搜索
http://172.20.6.3/Problem_Show.asp?id=1385 刚开始想的时候一直以为同一排不同的拉灯顺序对结果是有影响的,手推了好多遍才发现拉灯结果只和拉的灯有关,这也要打 ...
- HDU 6039 Gear Up(线段树+并查集)
[题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=6039 [题目大意] 给出一些齿轮,有些齿轮是边相连,也就是拥有相同的线速度, 有的齿轮是轴相连,也 ...
- 【分类讨论】Codeforces Round #407 (Div. 2) D. Weird journey
考虑这个二元组中有一者是自环,则必然合法. 考虑这两条边都不是自环,如果它们不相邻,则不合法,否则合法. 坑的情况是,如果它是一张完整的图+一些离散的点,则会有解,不要因为图不连通,就误判成无解. # ...
- 【树链剖分】bzoj2243 [SDOI2011]染色
树链剖分模板题.线段树维护每个段中的颜色数.左端点颜色.右端点颜色. pushup: col[rt]=col[rt<<1]+col[rt<<1|1]-(Rcol[rt<& ...