配置类,作用和bean.xml作用一样
@Configuration
: 指定当前类是配置类
细节:当配置类被当成AnnotationConfigApplicationContext对象创建的参数时,该注解可不写。
@ComponentScan
: 指定Spring创建容器时要扫描的包
value 指定扫描的包
<context:component-scan base-package="com.example"></context:component-scan>
@Bean
: 将当前方法的返回值当成bean对象存入spring的ioc容器
name 指定属性的id,默认值为当前方法名
如果方法有参数,spring框架回去容器中查找是否有可用的bean对象。
@Import
: 加载其他配置类到主配置类,支持父子关系。
value:用于指定其他配置类的字节码
@PropertySource
: 指定properties文件的位置
value:指定文件名称和路径
classpath:类路径下
业务层
- 创建对象 <bean></bean>
@Component
将当前对象存入spring容器 key: 当前类名首字母改小写 value:当前类
@Controller
表现层
@Service
业务层
@Repository
持久层 - 注入数据 <property></property>
@Autowired
按照类型注入,只要bean中有唯一的一个对象类型匹配,就可以注入成功
出现在成员变量或方法上
如果有多个匹配,按照变量名找相应对象
@Qualifier
在按照类型注入的基础上,按照名称注入。给类成员注入时不能单独使用,给方法参数注入时可以。
value指定id
@Resource
直接按照bean的id注入,可独立使用。
name指定id
=========以上只能注入其他类型,集合类型只能通过xml=======
@Value
注入基本数据类型和String
value用于指定数据的值 - 改变作用范围 scope
@Scope
value: singleton(默认) prototype - 生命周期 init-method destroy-method
@PreDestory
指定销毁方法(单例,类里有destroy方法)
@PostConstruct
指定初始化方法