Эта статья взята измой блог
перед текстом
Наконец-то я начал изучать Spring.Первое, с чем я столкнулся, был Bean, поэтому я хотел обобщить то, что я узнал, в двух статьях.
Первый имеет два содержания:
- Концепция Джавабея
- Весенняя проводка бобов
текст
1. Концепция JavaBeans
Что такое JavaBean
Конечно, Бин здесь не дословный перевод, что касается определения Бин, то Википедия объясняет его очень четко:
JavaBeansЭто специальный класс в Java, который может инкапсулировать несколько объектов в один объект (бин), который характеризуется сериализуемостью, предоставлением конструктора без параметров и методов получения и установки для доступа к свойствам объекта. «Бин» в названии — это идиома, используемая для многократно используемых программных компонентов в Java.
Пример бина
- Создать класс компонента
import java.io.Serializable;
public class UserBean implements Serializable {
//变量声明为私有
private String play;
private Boolean isUser;
//无参构造器
public UserBean(){}
//常规 set、get操作
public void setPlay(String play) { this.play = play; }
public String getPlay() { return play; }
public void setUser(Boolean user) { isUser = user; }
//布尔类型的 getter 采用了不同的名称,用 is 更加能表示类型
public Boolean isUser() { return isUser; }
}
- Используйте классы компонентов
public class UserBeanTest {
public static void main(String[] args){
//实例化
UserBean userBean = new UserBean();
userBean.setPlay("I want to play");
userBean.setUser(true);
//如果是用户,就打印语句
if(userBean.isUser()){
System.out.println(userBean.getPlay());
}
}
}
Процитирую фразу из "Весна в действии":
В традиционных Java-приложениях жизненный цикл компонента прост. Использование ключевых слов JavanewПроисходит создание экземпляра компонента, и компонент готов к использованию. Автоматическая сборка мусора с помощью Java после того, как компонент больше не используется.
2. Фасоль весной
Весной мы настраиваются и используются бобами, чтобы получить необходимые нам результаты.
В приведенном выше примере, если мы хотим создать Бин, мы будем использовать ключевое словоNewОднако в Spring создание Bean производится контейнером Spring, то есть при использовании bean-компонентов в Spring не по ключевым словам.Newсоздать экземпляр
Сегодня я в основном рассказываю о сборке одного Bean-компонента в Spring, Bean-компонент всего один, а в следующей статье речь пойдет о DI (внедрении зависимостей):
- автоматическая сборка
- Сборка с использованием XML
- Собрать с помощью Java
1. Автоматическая сборка
Процитирую предложение из «Spring в действии»: хотя вы найдете эти методы сборки дисплея очень полезными, наиболее мощным с точки зрения удобства является автоматическая конфигурация Spring.
Мы используем демонстрацию для объяснения, сначала создадим два класса: класс Student и класс StudentTest, а также файл конфигурации spring-config.xml:
Мы должны написать файл конфигурации, чтобы включить сканирование компонентов для поиска аннотаций с@ComponentКлассы с аннотациями, потому что я уже писал демонстрацию о Spring MVC, поэтому соответствующие@Component,@Serviceи@ControllerРазница составляет небольшое объяснение (личное понимание):
@ComponentОбычно это относится к классу компонента, который используется, когда его собственное позиционирование неясно, как, например, в нашей демонстрации.@ServiceУказывает, что это компонент бизнес-уровня.@ControllerУказывает, что это компонент уровня управления Его также можно использовать на бизнес-уровне и уровне управления.@Component, но это делает код менее читаемым
Вернемся к файлу конфигурации:
Эта строка:
<context:component-scan base-package="bean"/>
Весна поручено отсканировано в позиции сборки (имя пакета), если не установленоbase-package, пакет, в котором находится файл конфигурации сканирования
Затем мы смотрим на класс Student:
Это только для тестирования, поэтому оно значительно упрощено и требует только одного оператора вывода консоли.
Поскольку мы ранее настроили сканирование компонентов, щелкните значок рядом с ним, чтобы перейти к тому, что мы добавили.@ComponentАннотированный студенческий класс
Все готово, пришло время проверить, мы используем Junit для тестирования, нам нужно импортировать две банки:
junit-4.12.jar hamcrest-all-1.3.jar
Для содержимого тестового файла шаг за шагом:
- @RunWith: класс выполнения, указанный в этом модульном тесте (еще недостаточно изучен)
- @ContextConfiguration: расположение файла конфигурации, поскольку я настраиваю его с помощью XML-файла, поэтому укажите расположение файла конфигурации.
- @Autowired: bean-компонент с автоматическим подключением, как вы можете видеть здесь, он не используется.Newключевое слово, но может получить этот компонент во время выполнения
- @Test: метод для пропуска теста
Возможность увидеть, что консольный вывод операторов класса Student подтверждает успешную сборку
2. Использование сборки XML
Эта статья о простой сборке, поэтому есть много способов пропустить внедрение зависимостей, которые будут рассмотрены в следующей статье.
Итак, здесь только демонстрация создания Bean-компонента в XML-файле и его сборки.
Сначала мы создаем новый файл конфигурации spring-bean.xml:
Создайте bean-компонент с именем «student» с элементом в нем, а атрибут класса используется для указания типа bean-компонента.
Затем мы изменяем информацию о конфигурации контекста в тестовом файле:
мы будем@ContextConfigurationЗначение аннотации изменяется на настройку файлов BEAL.
Выходной результат:
Докажите, что сборка прошла успешно
3. Сборка с Java
В "Весеннем бою" настоятельно рекомендуется использование Java в качестве сборки. Может быть, я к этому не привык. Раньше я писал информацию о конфигурации в файле XML, но все же хочу сказать это здесь:
Мы создадим класс как класс для хранения информации о конфигурации, сначала добавим@Configuration, Заявлено, что это класс конфигурации:
Далее мы собираемся использовать аннотацию в классе конфигурации:@Bean:
Мы пишем метод в классе конфигурации, этот метод может создать нужный экземпляр и вернуть его, и@BeanДля этого метода имя метода используется как имя компонента по умолчанию:
Затем мы должны изменить тестовый класс и изменить файл контекста конфигурации наStudentConfig.class, указывающее расположение классов конфигурации Java:
Затем получите результаты теста, чтобы доказать, что сборка прошла успешно:
Что касается имени только что упомянутого метода, оно используется как имя по умолчанию для Bean.Вот тест:
Сначала измените имя метода в классе конфигурации и добавьте символ «s»:
Затем измените тестовый класс, в этом тесте мы не создаем экземпляр, просто проверяем, можно ли найти Бин в контексте:
После проверки выкинутьNoSuchBeanDefinitionException, что указывает на то, что компонент с именем «student» не найден.
Если я изменю имя только что измененного метода обратно, он пройдет тест:
Сборка на самом основном Бине остановится здесь, следующая статья будет о подробностях этих трех способов.