spring注解注入IOC
1.創建Bean對象的注解
<1>配置自定義Bean對象注解
@Component、@Controller、@Service、@repository
用法:寫在類上,
例如:@Service 或者 @Service(“userService”)
作用:將該類交給Spring創建對象保存到Spring容器中,如果沒有指定名稱,類名首字母小寫就是默認名稱。
<2> 配置第三方Bean對象注解
@Bean
用法:寫在配置類方法上。
例如: @Bean 或者 @Bean(“dataSource”)
作用:將方法的返回值對象保存到Spring容器,如果沒有指定名稱,方法名首字母小寫就是默認名稱。
2.依賴注入的注解
<1>注入對象類型數據
@Autowired
用法:寫在成員變量/set方法/構造方法/方法參數列表中
作用:按照類型自動裝配對象,如果同類型對象有多個,默認按照變量名和Bean的名稱匹配,推薦使用@Qualifier指定要匹配的Bean的名稱。
@Qualifier(""):指定要匹配的Bean的名稱,要和@Autowired配合一起使用,不能單獨使用。
<2>注入普通類型數據
<2>注入普通類型數據
@Value(""):注入普通類型數據,支持EL表達式
3.-1-和-2-兩者代碼示例
import com.itheima.dao.UserDao; import com.itheima.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service;@Service("userService") public class UserServiceImpl implements UserService {@Value("20")private String num;@Autowired//本質是將容器中的對象直接賦值[前提:容器中要先添加該bean對象]//放到成員變量 底層:暴力反射//放到構造方法 可用//放到set方法 可用//方法參數列表中 可用@Qualifier("userDao")//當UserDao有兩個同類型的屬性,用此注解指定idprivate UserDao userDao;@Overridepublic void save() {System.out.println("UserServiceImpl save is running..."+num);userDao.save();} }4.初始化和銷毀方法的注解
@Repository("userDao") public class UserDaoImpl implements UserDao {@Overridepublic void save() {System.out.println("dao中的save方法執行了...");}@PostConstruct//初始化方法注解public void init(){System.out.println("init初始化..........");}@PreDestroy//銷毀方法注解public void destroy(){System.out.println("destroy銷毀..........");} }5.測試-3-和-4-實例測試類
@Testpublic void test1(){//需求:從spring容器中獲取userService對象,并調用save方法//1 創建spring容器對象ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");//2 從spring容器中獲取userService對象//UserService userService = (UserService) ac.getBean("userService");//UserService userService = ac.getBean(UserService.class);UserService userService = ac.getBean("userService", UserService.class);//3 調用save方法userService.save();}打印結果: ------------------------------------------------------- init初始化.......... UserServiceImpl save is running...20 dao中的save方法執行了...注:由于destroy銷毀方法即執行方法時jvm已經關閉,所以未打印;需要打印則接收類要換成ClassPathXmlApplicationContext,使用里面的close()方法關閉
總結
以上是生活随笔為你收集整理的spring注解注入IOC的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 弹指间是什么意思 弹指间的含义
- 下一篇: 杜甫的三别 杜甫的三别分别是什么