Get the App
SLTechnology News&Howtos  ›  Development  › 

How to configure spring using JavaConfig

Shulou Source: shulou.com Published: 2022-06-03 15:14:28 10月01日 Update

This article mainly introduces how to configure spring using JavaConfig, which has a certain reference value, and interested friends can refer to it. I hope you can learn a lot after reading this article.

JavaConfig was incorporated into Spring from a separate project since Spring 3. 0. JavaConfig can be thought of as a Spring configuration file used to complete the Bean assembly, that is, the Spring container, except that the container is not a XML file, but a Java class written by the programmer himself using Java.

Entity class:

Package com.lzl.spring.entity; public class Car {private String brand;// brand private String type;// model private double speed;// maximum speed public Car () {} public Car (String brand, String type, double speed) {this.brand = brand; this.type = type; this.speed = speed } public String getBrand () {return brand;} public void setBrand (String brand) {this.brand = brand;} public String getType () {return type;} public void setType (String type) {this.type = type } public double getSpeed () {return speed;} public void setSpeed (double speed) {this.speed = speed;} @ Override public String toString () {return "Car [brand=" + brand + ", type=" + type + ", speed=" + speed + "]";}} package com.lzl.spring.entity Public class Person {private Integer id; private String name; private Car car; public Person (Integer id, String name) {this.id = id; this.name = name;} public Person () {} public Person (Integer id, String name, Car car) {this.id = id This.name = name; this.car = car;} public Integer getId () {return id;} public void setId (Integer id) {this.id = id;} public String getName () {return name } public void setName (String name) {this.name = name;} public Car getCar () {return car;} public void setCar (Car car) {this.car = car @ Override public String toString () {return "Person [id=" + id + ", name=" + name + ", car=" + car + "]";}}

Defining a JavaConfig class for a POJO class, using the @ Configuration annotation on the class will make the current class use as a container for Spring to complete the creation of the Bean. Using @ Bean on the method of this JavaConfig will change the result returned by a normal method to an instance of Bean with the specified name.

Package com.lzl.spring.entity; import org.springframework.beans.factory.annotation.Autowire;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration / / this annotation indicates that this class is a java configuration class @ Configurationpublic class MyConfig {/ / this annotation says: register an object called myCar with the container @ Bean ("myCar") public Car getCar () {return new Car ("Porsche", "911,300") } / / this note says: register an object called person in the container / / and inject car @ Bean (name= "person", autowire=Autowire.BY_TYPE) public Person getPerson () {return new Person (1001) into the container by byType;}}

Xml files only need to add automatic scan package configuration

Test class

Package com.lzl.spring.test; import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext; import com.lzl.spring.entity.Car;import com.lzl.spring.entity.Person; public class SpringTest {@ Test public void test1 () {/ / read configuration file ApplicationContext ctx=new ClassPathXmlApplicationContext ("spring-config.xml"); Car car = ctx.getBean ("myCar", Car.class) System.out.println (car); Person person = ctx.getBean ("person", Person.class); System.out.println (person);}}

Console output

Thank you for reading this article carefully. I hope the article "how to configure spring with JavaConfig" shared by the editor will be helpful to everyone. At the same time, I also hope you will support us and pay attention to the industry information channel. More related knowledge is waiting for you to learn!

Tags: Configuration containers files annotations articles objects methods ordinary maximum looking forward to value interest but at the same time name brand model entity instance console Apple Docker Huawei Linux macOS MariaDB Microsoft MySQL NVidia OPPO Reno Huawei Linux MariaDB OPPO Reno vpn