1. 程式人生 > 其它 >Spring 使用java和註解開發,不使用beans.xml

Spring 使用java和註解開發,不使用beans.xml

congig配置類

//這個也會被Spring容器託管,註冊到容器中,以為他本來就是一個@ComponentScan
//@Configuration代表這是一個配置類,就是我們之前看到的beans.xml
@Configuration
@ComponentScan("com.liu.pojo")可以配合掃描使用

package com.liu.config;

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


//這個也會被Spring容器託管,註冊到容器中,以為他本來就是一個@ComponentScan
//@Configuration代表這是一個配置類,就是我們之前看到的beans.xml
@Configuration
@ComponentScan("com.liu.pojo")
public class UserConfig {



    //等價於生成一個  id=“getUser”,class = com.liu.pojo.User
@Bean
    public User getUser(){
        return new User();
    }
}

pojo

需要//@Component註冊到容器中

package com.liu.pojo;

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

//@Component註冊到容器中
@Component
public class User {

    @Value("小明")
private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

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

測試

需要用new AnnotationConfigApplicationContext(UserConfig.class)

import com.liu.config.UserConfig;
import com.liu.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(UserConfig.class);
        User getUser = Context.getBean("getUser", User.class);
        System.out.println(getUser);
    }
}