- 1.创建Web项目,引入jar包
- 2.引入Spring的配置文件
- 在src下创建applicationContext.xml
- 引入约束:使用注解开发,需要引入context约束
- 约束:F:资料\spring-framework-4.2.4.RELEASE-dist\spring-framework-4.2.4.RELEASE\docs\spring-framework-reference\html\xsd-configuration.html
- 3 创建接口和实现类
- 4 开启Spring的组件扫描
<!-- Spring的IOC的注解的入门 -->
<!-- 使用IOC的注解开发,配置组件扫描(哪些包下的类使用IOC的注解) -->
<context:component-scan base-package="com.acat.spring.demo1"></context:component-scan>
package com.acat.spring.demo1;
public interface UserDao {
public void save();
}
package com.acat.spring.demo1;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
/**
* 用户Dao的实现类
* @author Administrator
*
*/
@Component("UserDao")//相当于<bean id="userDao" class="com.acat.spring.demo1.UserDaoImpl"/ >
public class UserDaoImpl implements UserDao {
@Value("王东")
private String name;
public void setName(String name) {
this.name = name;
}
@Override
public void save() {
System.out.println("Dao种保存用户的方法执行了"+name);
}
xiangjei
}
5.测试类
package com.acat.spring.demo1;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
* Spring IOC 注解开发的测试类
* @author Administrator
*
*/
public class SpringDemo1 {
@Test
//传统方式
public void demo1(){
UserDaoImpl userDao = new UserDaoImpl();
userDao.setName("王东");
userDao.save();
}
@Test
//spring IOC 注解方式
public void demo2(){
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
UserDao userDao = (UserDao)applicationContext.getBean("userDao");
userDao.save();
}
}
注解方式设置属性的值
- 注解方式:使用注解方式,可以没有set方法的。
- 提供set方法就把@Value加在set方法上,没有提供set方法就加在属性上。
6.Spring 的IOC的注解的详解
1.@Component :组件
修饰一个类,将这个类交给Spring管理
这个注解有三个衍生注解(功能类似),修饰类。
- @Controller : web层
- @Service : service层
- @Repository: dao层
2.属性注入的注解
- 普通属性:
@Value : 设置属性的值- 对象类型属性
@Autowired : 设置对象类型的属性的值,但是按照类型完成属性注入
- 我们习惯是按照名称完成属性注入:必须让@Autowired注解和@Qualifier一起使用完成按照名称属性注入- @Resource : 完成对象类型的属性的注入,按照名称完成属性注入。
8.Bean的其他的注解
- 生命周期相关的注解
- @PostConstrut : 初始化方法
- @PreDestory :销毁方法
- Bean 作用范围的注解
@scope : 作用范围
- singleton : 默认单例
- prototype:多例
- request
- session
globalsession
9.XML和注解的比较
- 使用场景
xml:可以适用任何场景(结构清晰,维护方便)
注解:有些地方用不了,这个类不是自己提供的(开发方便)
XML和注解整合开发
XML管理Bean,注解完成属性注入