spring--IOC--02--Bean对象创建--03--Java配置类

一、Bean对象创建的3种方式

(1)XML配置--<bean>

(2)注解--@Componet/@Autowired/@Value

(3)Java配置类--@Configuration/@Bean/@Value(本文)

优先级为(1)>(3)>(2)

二、Java配置类方式

@Configuration注解用于代替xml文件

@Bean用于代替<bean>标签

2.1 创建简单/复杂对象示例

(1)pom.xml中引入spring-context包(同XML配置)

(2)Bean定义

package com.fuping3.config;

import com.fuping3.entity.User;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;

import java.sql.Connection;
import java.sql.DriverManager;

@Configuration
@PropertySource("ApplicationContext.properties")
public class MyConfig {
    //返回值相当于类全限定名,方法名相当于id
    @Bean
    public User myUser(@Value("${config.user.id}")int id){
        User user=new User();
        user.setId(id);
        user.setUser_name("小明");
        user.setAge(90);
        user.setGender('0');
        return user;
    }

    //创建复杂对象
    @Bean
    public Connection conn() throws Exception {
        //加载驱动
        Class.forName("com.mysql.jdbc.Driver");
        Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/fuping3?useSSL=false", "root", "123456");
        return conn;
    }
}

(3)Bean实现类

package com.fuping3.entity;

import java.io.Serializable;

public class User implements Serializable {
    private Integer id;
    private String user_name;
    private Integer age;
    private char gender;
    //省略set方法/toString方法
}

(4)测试代码

@Test
    public void test(){
        //可以指定配置类类型或配置类包名
        //AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(MyConfig.class);
        AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext("com.fuping3.config");
        User myUser = (User) context.getBean("myUser");
        System.out.println(myUser);
        System.out.println("--------");
        Connection conn = (Connection) context.getBean("conn");
        System.out.println(conn);
    }

运行结果

User{id=5, user_name='小明', age=90, gender=0}
--------
com.mysql.jdbc.JDBC4Connection@779568

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值