使用注解创建对象
曾经的xml配置创键对象
<bean id="user" class="com.Dao.User" scope="singleton" init-method="init" destroy-method="destroy">
<property name="name" value="chenhui" |ref=""></property>
</bean>
现在使用注解开发
- 用于创建对象:
作用和XML配置文件中编写一个bean标签实现的功能一样的
@component 用于把当前类对象存入spring容器
其中的属性value可赋值,用于指定bean的id,当不写value时,它的默认值是当前类名,且首字母小写
@Controller(一般用于表现层)
@Repository(一般用于持久层)
@Service(一般用于业务层)
以上三个注解和@Component作用和属性一样,用于明确三层架构注解
Spring核心配置文件配置
<?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
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd">
<!-- 需要导入context"命名空间和约束-->
<!-- 告知spring容器在创建的时候要扫描的包-->
<context:component-scan base-package="com"></context:component-scan>
<!-- 开启注解驱动配置-->
<!-- <context:annotation-config/>-->
</beans>
实体类:
@Component
public class User {
public User(){
System.out.println("对象被创建出来了");
}
}
测试类:
public static void main(String[] args) {
//通过ClassPathXmlApplicationContext对象加载配置文件方式将javabean对象交给spring来管理
ApplicationContext applicationContext=new ClassPathXmlApplicationContext("bean.xml");
//获取Spring容器中的bean对象,通过id和类字节码来获取
User user = applicationContext.getBean("user", User.class);
System.out.println(user);
}
结果: