4.Spring注解方式 实现 IOC 和DI

时间:2019-08-24
本文章向大家介绍4.Spring注解方式 实现 IOC 和DI,主要包括4.Spring注解方式 实现 IOC 和DI使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

       1. Spring注解

              Spring除了默认的使用xml配置文件的方式实现配置之外,也支持使用注解方式实现配置,这种方式效率更高,配置信息清晰,修改更方便,推荐使用。

              所谓注解就是给程序看的提示信息,很多时候都用来作为轻量级配置的方式。

              关于注解的知识点,参看java基础课程中java基础加强部分的内容。

       2. Spring引入context名称空间

              在MyEclipse中导入spring-context-3.2.xsd约束文件,要求Spring来管理。

              在applicationContext.xml文件中,引入该schema文件:

**可以将以上头信息加入MyEclipse模版,方便后续自动生成。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:context="http://www.springframework.org/schema/context" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
 http://www.springframework.org/schema/context 
 http://www.springframework.org/schema/context/spring-context-3.2.xsd ">
 </beans>

       3. Spring注解方式实现IOC

              a. 开启包扫描

              在spring的配置文件中,开启包扫描,指定spring自动扫描哪些个包下的类。只有在指定的扫描包下的类上的IOC注解才会生效。会生成bean对象放到map中

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:context="http://www.springframework.org/schema/context" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
 http://www.springframework.org/schema/context 
 http://www.springframework.org/schema/context/spring-context-3.2.xsd ">
 <!-- 配置ioc包扫描 spring启动的时候就会自动扫描指定的包,如果包下的所有类只要有我们特定的spring注解,就会被spring管理起来
 spring 就会生成对应的bean对象,而特定的注解就是@Component @Controller @Service @Repository 其实是一种注解,代表不同层罢了,如果不扫描的话就算有注解那么spring也不会管理这个类创建bean-->
 <context:component-scan base-package="cn.tedu.beens,cn.tedu.p"></context:component-scan>
 </beans>

              b. 使用注解注册bean

              在配置的包中的类上使用@Component注解,则这个类会自动被注册为bean,使用当前类的class为<bean>的class,通常情况下使用类名首字母小写为<bean>id。

              案例:

@Component
public class Person {
String name;
int age;
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
public int getAge() {
    return age;
}
public void setAge(int age) {
    this.age = age;
}

}

              c. bean的id

              通常情况下注解注册bean使用类名首字母小写为bean的id,但是如果类名的第二个字母为大写则首字母保留原样.

cn.tedu.beans.Person --> <bean id="person" class="cn.tedu.beans.Person"/>

cn.tedu.beans.PErson --> <bean id="PErson" class="cn.tedu.beans.Person"/>

cn.tedu.beans.NBA --> <bean id="NBA" class="cn.tedu.beans.NBA"/>

也可以通过在@Component中配置value属性,明确的指定bean的id 这个很重要

原文地址:https://www.cnblogs.com/xuwangqi/p/11406404.html