1.配置文件配置
<?xml version="1.0" encoding="UTF-8"?>
<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.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd ">
<!-- 告知spring在创建容器时要扫描的包,配置所需要的标签不是在beans的约束中,而是一个名称为
context名称空间和约束中-->
<!-- 连接数据所用的 & 在xml文件中用 & -->
<context:component-scan base-package="com.zty"></context:component-scan>
</beans>
2.注解与XML的对应
/**
* 曾经XML的配置
* <bean id="accountService" class="com.zty.service.impl.AccountServiceImpl"
* scope="" init-method="" destroy-method="">
* <property name="" value=""/ref="" ></property>
* </bean>
*
* 用于创建对象的
* 他们的作用就和在XML配置文件中编写一个<bean> 标签实现的功能是一样的
* @Componant:
* 作用 :用于把当前类对象存入spring容器中
* 属性:
* value:用于指定bean的id。当我们不写时,它的默认值是当前类名首字母改小写
* Controller: 一般用在表现层 V
* Service: 一般用在业务层 C
* Repository:一般用于持久层 M
* 以上三个注解他们的作用和Conmponant一样。
* 他们三个是spring框架为我们提供明确的三层使用的注解,使我们的三层对象更加清晰
* 用于注入数据的
* 他们的作用就和在xml配置文件中的bean标签中写一个<property>标签的作用是一样的
* Autowired:
* 作用:自动按照类型注入。只要容器中有唯一的一个bean对象类型和要注入的变量类型匹配,就可以注入成功。
* 如果ioc容器中没有任何bean的类型和要注入的变量类型匹配,则报错。
* 如果ioc容器中有多个类型匹配时
* 查找顺序:1.按照数据类型在ioc中查找 2.以变量名称为ioc中id查找bean对象注入
* 书写位置:
* 可以是变量上,也乐意是方法上
* 细节: 在使用注解注入时,set方法就不是必须的了。
* Qualifier: 必须与一起Autowired使用
* 作用:在按照类中注入的基础之上再按照名称注入。它在给类成员注入时不能单独使用。但是在给方法参数注入时可以
* 属性:
* value:用于指定注入bean的id
* Resource:
* 作用:直接按照bean的id注入。它可以独立使用
* 属性:
* name:用于指定bean的id。
* 以上三种注解只能注入其他bean类型的数据,而基本类型和String类型无法使用上述注解实现
* 另外,集合类型的注入只能同XML来实现
*
* Value
* 作用:用于注入基本类型和String类型的数据
* 属性:
* value:用于指定数据的值。它可以使用spring中SpEL(也就是spring的el表达式)
* SpEL的写法: ${表达式}
* 用于改变作用范围的
* 他们的作用集合在bean标签中使用scope属性实现的功能一样的。
* Scope:
* 作用:bean的作用范围
* 属性
* value:两个值,指定范围的取值:singleton(默认) prototype
* 和生命周期相关 了解
* 他们的作用就和在bean标签中使用init-method和destroy-methode的作用是一样的
* PreDestroy
* 作用:用于设定销毁方法
* PostConstruct
* 作用:用于设定初始方法
*/
@Component
@Scope("singleton")
public class AccountServiceImpl implements IAccountService {
public AccountServiceImpl(){
System.out.println("调用构造方法service");
}
@Autowired
// @Qualifier("accountDaoImpl")
// @Resource("accountDaoImpl") private IAccountDao accountDao;
public void saveAccount() {
accountDao.saveAccount();
}
}
spring的基于注解的IOC配置的更多相关文章
-
10 Spring框架--基于注解的IOC配置
1.工程环境搭建 2.基于注解的IOC配置 IOC注解的分类 (1)用于创建对象的 他们的作用就和在XML配置文件中编写一个<bean>标签实现的功能是一样的@Component: 作用: ...
-
Spring 框架的概述以及Spring中基于XML的IOC配置
Spring 框架的概述以及Spring中基于XML的IOC配置 一.简介 Spring的两大核心:IOC(DI)与AOP,IOC是反转控制,DI依赖注入 特点:轻量级.依赖注入.面向切面编程.容器. ...
-
spring-第十七篇之spring AOP基于注解的零配置方式
1.基于注解的零配置方式 Aspect允许使用注解定义切面.切入点和增强处理,spring框架可以识别并根据这些注解来生成AOP代理.spring只是用了和AspectJ 5一样的注解,但并没有使用A ...
-
Spring中基于注解的IOC(二):案例与总结
2.Spring的IOC案例 创建maven项目 导入依赖 pom.xml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ...
-
基于注解的IOC配置
1 明确 注解配置和XML配置要实现的功能都是一样的,都是要降低程序间的耦合.只是配置的形式不一样. 关于实际的开发中到底是使用XML还是注解,每家公司有着不同的习惯.具体问题具体分析. 2 环境搭建 ...
-
Spring 基于注解的 IOC 配置
创建 spring 的 的 xml 配置 文件 <context:component-scan base-package="com.itheim"/> 指定创建容器时要 ...
-
spring的纯注解的IOC配置
package config; import com.mchange.v2.c3p0.ComboPooledDataSource;import org.apache.commons.dbutils.Q ...
-
Spring中基于注解的IOC(一):基础介绍
1. Spring中的常用注解 注解配置和xml配置要实现的功能都是一样的,都要降低程序的耦合,只是配置的形式不一样 xml中配置示例: 注解分类: 1.用于创建对象的注解 它们的作用就和在xml中编 ...
-
Spring AOP基于注解的“零配置”方式实现
为了在Spring中启动@AspectJ支持,需要在类加载路径下新增两个AspectJ库:aspectjweaver.jar和aspectjrt.jar.除此之外,Spring AOP还需要依赖一个a ...
随机推荐
-
android Activity基类通用方法
public class BaseActivity extends Activity { Resources res; // 通用资源缩写 @Override protected void onCre ...
-
VBS数组
定义一个数组: dim a(3).这里要注意在VBS里面数组不像其他的例如C,C#,JAVA等数组用[]作为数组标志.VBS采用的是().还需要注意的是,这里定义的数组包含a(0),a(1),a(2) ...
-
Oracle使用JDBC进行增删改查
数据库和表 create table USERS( USERNAME VARCHAR2(20) not null, PASSWORD VARCHAR2(20))alter table USERS ...
-
linux 常见操作命令
1.网络查询和配置 查询网卡和配置信息:ifconfig 查询指定网卡信息:ifconfig eth1 配置网卡ip信息:vi /etc/sysconfig/network-scripts/ifcfg ...
-
使用svcutil.exe 生成服务的代码
@echo offcall "c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"svcuti ...
-
[C#基础] 数据类型
预定义类型 C#提供了16种预定义类型,其中包括13种简单类型和3种非简单类型. 预定义的简单类型包括以下3种: 11种数值类型 不同长度有符号和无符号的整数类型(8种) 浮点数类型float和dou ...
-
Ubuntu apt-get 详解
一.常用的APT命令参数: apt-cache search package 搜索软件包 apt-cache show package 获取包的相关信息,如说明.大小.版本等 sudo apt-ge ...
-
Spring学习笔记①
我觉得Spring之所以发展的好,主要是理论研究与实践是并轨的,能跟得上时代的步伐,尤其是基础理论的研究(可能是最近看三体看多了,对基础理论非常崇拜).微服务的实现啊,RESTful的实现,对应的Sp ...
-
Sybase数据库的连接,JNDI配置,Hibernate配置
最近的一个项目就是移植老项目的代码,有一个模块用的是Sybase数据库,我表示从来没接触过,更不用说怎么用了.再者这东西都是几乎被淘汰的东西了,而且网上搜到的东西简直了,全是复制粘贴的. 一.使用工具 ...
-
Unable to find the ncurses libraries的解决办法
我们在更新CentOS或者Ubuntu的内核时,执行make menuconfig可能看如这样的错误: *** Unable to find the ncurses libraries or the* ...