如何在春季获得豆范围?

时间:2019-02-28 14:42:01

标签: spring spring-ioc

我有以下课程:

public class ServiceFactory {

    private ServiceFactory() {

    }

    public static <T extends XXXX> T loadService(Class<T> klass) {
        ApplicationContext applicationContext = ApplicationContextProvider.getApplicationContext();
        return applicationContext.getBean(klass);
    }
}

它会在运行时加载Bean(我有具体的理由这样做)。

我需要检查bean是否用@Scope(BeanDefinition.SCOPE_PROTOTYPE)注释,或者只是将其强制为原型。

我该怎么做?

1 个答案:

答案 0 :(得分:1)

首先,您需要为您的类找到一个bean名称。然后,您可以使用该名称查找BeanDefinition并获取范围。

# To support both python 2 and python 3
from __future__ import division, print_function, unicode_literals

# Common imports
import numpy as np
import os

# Standard library
import random

# to make this notebook's output stable across runs
np.random.seed(42)

# To plot pretty figures
%matplotlib inline
import matplotlib
import matplotlib.pyplot as plt
plt.rcParams['axes.labelsize'] = 14
plt.rcParams['xtick.labelsize'] = 12
plt.rcParams['ytick.labelsize'] = 12

# Where to save the figures
PROJECT_ROOT_DIR = "."
CHAPTER_ID = "classification"

def save_fig(fig_id, tight_layout=True):
    path = os.path.join(PROJECT_ROOT_DIR, "images", CHAPTER_ID, fig_id + ".png")
    print("Saving figure", fig_id)
    if tight_layout:
        plt.tight_layout()
    plt.savefig(path, format='png', dpi=300)

#import and split the dataset  
import mnist_loader
training_data, validation_data, test_data = map(list,mnist_loader.load_data_wrapper())
training_data = list(training_data)

print(len(training_data))

#Setting up and training 1st network
import network
net1 = network.Network([784, 30, 10])
epochs = 30
mini_batch_size = 10
eta = 3.0
net1.SGD(training_data, epochs, mini_batch_size, eta, test_data=test_data)

#Second Network
import network
net2 = network.Network([784, 100, 10])
epochs = 30
mini_batch_size = 10
eta = 3.0
net2.SGD(training_data, epochs, mini_batch_size, eta, test_data=test_data)

#3rd Network    
import network
net3 = network.Network([784, 10])
epochs = 30
mini_batch_size = 10
eta = 3.0
net3.SGD(training_data, epochs, mini_batch_size, eta, test_data=test_data)

#Use Classification Built-in Neural Network from Scikit-Learn

from sklearn.neural_network import MLPClassifier
mlp= MLPClassifier(hidden_layer_sizes=(100,),activation='logistic',solver='sgd',batch_size=10,max_iter=30,learning_rate_init=3,learning_rate='constant')
mlp.fit(training_data,test_data)
相关问题