我有以下课程:
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)注释,或者只是将其强制为原型。
我该怎么做?
答案 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)