欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Spring——使用注解开发

程序员文章站 2022-07-08 08:08:27
...

使用注解开发

属性的注入:
@Component:组件,放在类上,说明这个类被Spring管理了,就是bean

//@Component:组件;
//等价于<bean id="user" class="com.lyr.pojo.User"></bean>
@Component
public class User {

    public String name = "张三";
}

@Value:等价于<property name="name" value="lyr"></property>
@Component
public class User {
    @Value("lyr")
    public String name ;
}

衍生注解:

  • dao【@Repository】
  • service【@Service】
  • controller【@Controller】

这四个注解功能都是一样的,都是代表某个类注册到Spring中,装配bean

 

作用域:@Scope("prototype")  //原型模式

xml与注解:

xml用来管理bean;

注解只负责完成属性的注入;

在使用注解的过程中,要开启注解的支持:

<!--指定要扫描的包,这个包下的注解就会生效-->
<context:component-scan base-package="com.lyr"/>
<context:annotation-config/>

 

 

完全用注解替代xml配置

实体类:

package com.lyr.pojo;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;


public class User {
    private String name;

    public String getName() {
        return name;
    }

    @Value("lyr")//属性注入值
    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                '}';
    }
}

配置文件:

package com.lyr.config;

import com.lyr.pojo.User;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;


//这个也会被Spring容器托管,注册到容器中,因为它本身也是一个@Component
//@Configuration代表这是一个配置类,就和之前的beans.xml一样
@Configuration
public class sConfig {

    //注册一个@Bean就相当于之前写的一个bean标签
    //这个方法的名字,就相当于bean标签中的id属性
    //这个方法的返回值,就相当于bean标签中的class属性
    @Bean
    public User getUser(){
        return new User();  //返回要注入bean的对象
    }
}

测试类:

import com.lyr.config.sConfig;
import com.lyr.pojo.User;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class myTest {
    public static void main(String[] args) {
        ApplicationContext context = new AnnotationConfigApplicationContext(sConfig.class);
        User user = (User) context.getBean("getUser");
        System.out.println(user.getName());
    }
}

@ComponentScan("com.l yr.pojo")  //扫描包
@Import(sConfig2.class)  //引用配置

相关标签: Spring