部分内容转自:https://www.cnblogs.com/fnlingnzb-learner/p/9723834.html
https://www.shiyanlou.com/courses/578/learning/?id=1937
- @Component的作用:
表示这个 Class 是一个自动扫描组件,当组件不好归类的时候,我们可以使用这个注解进行标注,相当于配置文件中的
<bean id="" class=""/>
- @Autowired的作用:
它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。 通过 @Autowired的使用来消除 set ,get方法。 - 实例代码
Service.java
package com.test3;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class CustomerService {
@Autowired //here
CustomerDao cusDao;
/*省去了以下代码
public void setCustomerDAO(CustomerDAO customerDAO) {
this.customerDAO = customerDAO;
}
*/
public String toString() {
return "CustomerService [customerDAO=" + cusDao + "]";
}
}
通过@Autowired的使用,可以省去set和get方法的代码
dao.java
package com.test3;
import org.springframework.stereotype.Component;
@Component
public class CustomerDao {
public String toString() {
return "Hello , This is CustomerDAO";
}
}
配置文件代码:
<?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/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<context:component-scan base-package="com.test3"/>
</beans>
base-package 表示组件的存放位置,Spring 将扫描对应文件夹下的 bean(用 @Component 注释过的),将这些 bean 注册到容器中。
–MainApp.java略
结果图: