Знакомство Весна - Бобовая сборка (а)

Java задняя часть Spring JUnit

Эта статья взята измой блог

перед текстом

Наконец-то я начал изучать Spring.Первое, с чем я столкнулся, был Bean, поэтому я хотел обобщить то, что я узнал, в двух статьях.

Первый имеет два содержания:

  1. Концепция Джавабея
  2. Весенняя проводка бобов

текст

1. Концепция JavaBeans

Что такое JavaBean

Конечно, Бин здесь не дословный перевод, что касается определения Бин, то Википедия объясняет его очень четко:

JavaBeansЭто специальный класс в Java, который может инкапсулировать несколько объектов в один объект (бин), который характеризуется сериализуемостью, предоставлением конструктора без параметров и методов получения и установки для доступа к свойствам объекта. «Бин» в названии — это идиома, используемая для многократно используемых программных компонентов в Java.

Пример бина
  1. Создать класс компонента
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; }
}

  1. Используйте классы компонентов
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 (внедрении зависимостей):

  1. автоматическая сборка
  2. Сборка с использованием XML
  3. Собрать с помощью 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» не найден.

Если я изменю имя только что измененного метода обратно, он пройдет тест:

Сборка на самом основном Бине остановится здесь, следующая статья будет о подробностях этих трех способов.