Using the springboot framework, you can easily and quickly build standalone production-level spring applications. springboot mainly has the following features:
1. Create an independent Spring application
2. Directly embed Tomcat and other Web containers (no need to deploy WAR files)
3. Provide Solid "starter" dependency simplifies build configuration
4. Automatically assemble Spring and third-party class libraries when the barcode is satisfied
5. Provide operation and maintenance features, such as indicator information and health checks and external configuration
6. No XML configuration is required.
Introduce the starter dependency of mybatis and related database drivers
<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.2.0</version> </dependency>
Use of the program
//程序的启动类 @SpringBootApplication public class HelloApplication { public static void main(String[] args) { SpringApplication.run(HelloApplication.class, args); } //服务类 @Service public interface UserService { @Autowired private UserXmlMapper userXmlMapper; @Test public void testFindAll2() { List<User> list = userXmlMapper.findAll(); System.out.println(list); } } //Dao 操作 @Mapper public interface UserXmlMapper { public List<User> findAll(); }
The above code, everyone They are all very familiar. How does springboot implement the @Mapper annotation so that it can operate the database (there is a bridge in the middle, how to connect springboot and mybatis, and how is this bridge implemented)
Find the bridge from the startup class
You can know it through the source code
Bridge=@SpringBootApplication=>@EnableAutoConfiguration=>@Import({ AutoConfigurationImportSelector.class})
Analysis of the source code shows the main function of AutoConfigurationImportSelector
Scan all jar packages under the classpath
AutoConfiguration configured in META-INF/spring.factories
Scan out the AutoConfguration that needs to be executed
Recall when I use mybatis again , you need to introduce the starter dependency package of mybatis, and combined with the second function of AutoConfigurationImportSelector, you can find the AutoConfguration of mybatis under the corresponding jar.
That is to say, when spring-boot starts [it will create a spring container], it will execute the logic of MybatisAutoConfiguration [process@ Mapper classes (scanned and injected into the srping container) and database connection functions].
The above is the detailed content of How to implement automatic assembly in Springboot framework. For more information, please follow other related articles on the PHP Chinese website!