qiuxuhui

导航

Spring xml注解+java注解

1,xml+基于注解配置(第一步:在xml开启注解配置)

@Component   被表示类会被纳入 spring ioc 容器进行管理,相当于<bean>

@Value       为类注入基本类型和String属性值

@Autowired   为类注入应用类型属性值;默认按类型注入,可以通过@Qualifier("dog2")指定bean,同时也可以通过bean加入primary=true 优先被Autowired注入

@Resource      默认按类型注入,如果指定了name属性,则按bean名称注入

 

例:

添加配置文件beans-annotation.xml

<?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">
   
   <!--  1、启用注解配置-->
    <context:annotation-config/>
    <!-- 2、扫描哪个包下的注解 -->
    <context:component-scan base-package="entity"/>
    
  </beans>

  添加Dog类

@Component
public class Dog {
    @Value("旺财")
    private String name;
    @Value("公")
    private String sex;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    @Override
    public String toString() {
        return "entity.Dog [name=" + name + ", sex=" + sex + "]";
    }
    
}

  添加测试类

public static void main(String[] args) {

        ApplicationContext context = new ClassPathXmlApplicationContext("beans-annotation.xml");

        Dog dog = (Dog) context.getBean("dog");
        System.out.println(dog.toString());


    }

2,java+注解配置(主流,第一步:在配置类中开启注解扫描)

  @ComponentScan("entity")  会去entity扫描@Component @Value @Autowired进行创建bean或注入属性值

  注意:需要再多导入一个包,spring-app-5.0.14.RELEASE.jar

  1)AnnotationConfigApplicationContext

    @Configuration  指定该类为Spring ioc容器配置类,相当于beans.xml文件

    @Bean(name ="user")  将方法返回值纳入到spring ioc容器进行管理,相当于 <bean>

 

例如:

  添加配置文件beans-annotation.xml

<?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">
   
   <!--  1、启用注解配置-->
    <context:annotation-config/>
    <!-- 2、扫描哪个包下的注解 -->
    <context:component-scan base-package="entity"/>
    
  </beans>

  添加Dog类

public class Dog {
    private String name;
    private String sex;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    @Override
    public String toString() {
        return "entity.Dog [name=" + name + ", sex=" + sex + "]";
    }
    
}

  添加工厂类

@Configuration
@ComponentScan(basePackages = "entity")
public class BeansConfig {
@Bean
public Dog getDog(){
Dog dog = new Dog();
dog.setSex("男");
dog.setName("王二麻子");
return dog;
}
}

  添加测试类

public static void main(String[] args) {

        AnnotationConfigApplicationContext configApplicationContext =
                new AnnotationConfigApplicationContext(BeansConfig.class);
        Object dog = configApplicationContext.getBean("getDog");
        System.out.println(dog);

    }

  

posted on 2020-12-15 20:44  qiuxuhui  阅读(263)  评论(0)    收藏  举报