JavaEE--Spring_IOC03
一、Spring整合web项目原理
1、加载Spring核心配置文件
ApplicationContext context=
new ClassPathXmlApplicationContext("applicationContext.xml");
2、实现思想:把加载配置文件和创建对象过程,在服务器启动时候完成
3、实现原理:
(1)ServletContext对象
(2)监听器
(3)具体使用
在服务器启动的时候,为每个项目创建一个ServletContext对象,
在ServletContext创建的时候,使用监听器监听ServletConttext是在什
么时候创建的,在ServletContext创建的时候加载配置文件,把创建出
来的对象放在ServletContext域中(使用setAttribute方法)获取对象的
时候使用getAttribute获取。
二、注解开发
1、注解介绍:代码里面的特殊标记,使用注解可以完成功能
写法:@注解名称(属性名=属性值)
注解放在类上面、方法上面、属性上面
2、
(1)注解开发之前要导入基本jar包和aop的jar包,并引入约束
在配置文件里开启注解扫描
扫描类、方法、属性上面是否有注解
<context:component-scan base-package="com"></context:component-scan>(有多个包用逗号隔开,com表示以com开头的包)
扫描属性上面的注解
<context:annotation-config></context:annotation-config>
(2)注解创建对象
@Component(value="user")()
public class User{}
value值相当于bean标签的id
创建对象还有三个注解:
@Controller :web层
@Service:service层
@Repository:dao层
(这三个注解只是让注解本身功能更清晰,目前功能一样)
@Scope(value="prototype")表示创建的对象是单例的还是多例的,prototype表示多例,默认是单例
(3)注解注入属性(注解方式注入不用set方法)
@Component(value="userDao")//创建对象
public class UserDao{}
public class UserService{
@Autowired//这个注解跟value="userDao"无关是先找对应的类再找对象
private UserDao userDao;
}
public class UserService{
@Resource(name="userDao")这种方式name值要和上面的value="userDao"值一样,是通过value值找到对象
private UserDao userDao;
}