`

31. Spring Boot导入XML配置【从零开始学Spring Boot】

阅读更多

 à悟空学院:https://t.cn/Rg3fKJD

学院中有Spring Boot相关的课程!点击「阅读原文」进行查看!

SpringBoot视频:http://t.cn/A6ZagYTi

Spring Cloud视频:http://t.cn/A6ZagxSR

SpringBoot Shiro视频:http://t.cn/A6Zag7IV

SpringBoot交流平台:https://t.cn/R3QDhU0

SpringData和JPA视频:http://t.cn/A6Zad1OH

SpringSecurity5.0视频:http://t.cn/A6ZadMBe

Sharding-JDBC分库分表实战http://t.cn/A6ZarrqS

分布式事务解决方案「手写代码」:http://t.cn/A6ZaBnIr

 

网易云课堂视频最新更新

第十一章 Spring Boot 日志

1、spring boot日志—理论

2、Spring Boot日志-logback

3、Spring Boot日志-log4j2

第十二章 Spring Boot 知识点2

1、spring boot 服务配置和部署

2、Spring Boot 定制URL匹配规则

 

 

 

【来也匆匆,去也匆匆,在此留下您的脚印吧,转发点赞评论;

      您的认可是我最大的动力,感谢您的支持】    

      Spring Boot理念就是零配置编程,但是如果绝对需要使用XML的配置,我们建议您仍旧从一个@Configuration类开始,你可以使用@ImportResouce注解加载XML配置文件,我拿一个例子来进行讲解:

这个例子的大体步骤如下:

1)新建一个工程;

2)在App.java类编写HelloService2;

3)在App.java类无法扫描的包下编写HelloService;

4)编写application-bean.xml注入HelloService;

5)编写ConfigClass注入配置文件application-bean.xml;

6)编写App.java启动类进行测试;

7)其它说明

 

 

 

1)新建一个工程;

       我们在前几节的例子已经写到hello2了,我们取一个新的名称为spring-boot-hello3,这里没有什么难点,不过多介绍,还有难处的可以查看之前的例子,当然这里加入spring-boot相应的web支持;

不懂的参考:

spring boot起步之Hello World【从零开始学Spring Boot:

http://412887952-qq-com.iteye.com/blog/2291500

 

2)在App.java类编写HelloService2;

       首先我们这里有几个包:com.kfit,org.kfit,我们这里打算把App.java启动类放到com.kfit中,根据Spring Boot扫描(根包到子包的原则),我们把HelloService2写在Spring Boot可以扫描的位置,HelloService写在Spring Boot无法扫描到的位置,那么我们使用配置文件bean的方式进行引入,具体代码如下:

com.kfit.service.HelloService2

package com.kfit.service;

 

import org.springframework.stereotype.Service;

 

@Service

publicclass HelloService2 {

   

    /**

     * 启动的时候观察控制台是否打印此信息;

     */

    public HelloService2() {

       System.out.println("HelloService2.HelloService2()");

       System.out.println("HelloService2.HelloService2()");

       System.out.println("HelloService2.HelloService2()");

    }

}

 

 

 

3)在App.java无法扫描的包下编写HelloService;

       注意这个类是写在Spring Boot无法自动扫描的位置,正常启动之后,如果引入HelloService的话肯定会报异常的,因为它根本没有被注入成功,具体代码如下:

org.kfit.service.HelloService

package org.kfit.service;

 

import org.springframework.stereotype.Service;

 

@Service

publicclass HelloService {

   

    /**

     * 启动的时候观察控制台是否打印此信息;

     */

    public HelloService() {

       System.out.println("HelloService.HelloService()");

       System.out.println("org.kfit.service.HelloService.HelloService()");

       System.out.println("HelloService.HelloService()");

    }

   

}

 

 

4)编写application-bean.xml注入HelloService;

       src/main/resouces下编写配置文件application-bean.xml文件:

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

   

    <!-- 注入spring boot无法扫描到的bean. -->

    <bean id="helloService" class="org.kfit.service.HelloService"></bean>

 

</beans>

 

 

5)编写ConfigClass注入配置文件application-bean.xml;

       com.kfit.config包下编写类ConfigClass,这个确保能被Spring Boot可以扫描到,不然一切都付之东流了,具体代码如下:

com.kfit.config.ConfigClass

package com.kfit.config;

 

import org.springframework.context.annotation.Configuration;

import org.springframework.context.annotation.ImportResource;

 

/**

 * classpath路径:locations={"classpath:application-bean1.xml","classpath:application-bean2.xml"}

 * file路径: locations = {"file:d:/test/application-bean1.xml"};

 */

@Configuration

@ImportResource(locations={"classpath:application-bean.xml"})

//@ImportResource(locations={"file:d:/test/application-bean1.xml"})

publicclass ConfigClass {

 

}

 

 

6)编写App.java启动类进行测试;

       这个类Spring Boot正常的启动代码:

com.kfit.App

package com.kfit;

 

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

 

/**

 *

 *

 * 大家也许会看到有些demo使用了3个注解: @Configuration

 *

 * @EnableAutoConfiguration

 * @ComponentScan

 *

 *   其实:@SpringBootApplication申明让spring boot自动给程序进行必要的配置,

 *

 * 等价于以默认属性使用@Configuration

 *  @EnableAutoConfiguration@ComponentScan

 *

 * 所以大家不要被一些文档误导了,让自己很迷茫了,希望本文章对您有所启发;

 *

 * @author Angel(QQ:412887952)

 * @version v.0.1

 */

@SpringBootApplication

public class App {

       public static void main(String[] args) {

              SpringApplication.run(App.class, args);

       }

}

 

App.java 右键 Run As  Java Application观察控制台输出可以看到:

HelloService2.HelloService2()

HelloService2.HelloService2()

HelloService2.HelloService2()

HelloService.HelloService()

org.kfit.service.HelloService.HelloService()

HelloService.HelloService()

说明我们引入编写的代码生效了,如果你不相信的话,可以把ConfigClass的注解去掉,测试下,是不是打印信息就少了HelloService的部分,是的话就对了。

 

7)其它说明

       ImportResouce有两种常用的引入方式:classpathfile,具体查看如下的例子:

 

 classpath路径:locations={"classpath:application-bean1.xml",

"classpath:application-bean2.xml"

}

 file路径:

locations = {"file:d:/test/application-bean1.xml"};

 

 

 

à悟空学院:https://t.cn/Rg3fKJD

学院中有Spring Boot相关的课程!点击「阅读原文」进行查看!

SpringBoot视频:http://t.cn/A6ZagYTi

Spring Cloud视频:http://t.cn/A6ZagxSR

SpringBoot Shiro视频:http://t.cn/A6Zag7IV

SpringBoot交流平台:https://t.cn/R3QDhU0

SpringData和JPA视频:http://t.cn/A6Zad1OH

SpringSecurity5.0视频:http://t.cn/A6ZadMBe

Sharding-JDBC分库分表实战http://t.cn/A6ZarrqS

分布式事务解决方案「手写代码」:http://t.cn/A6ZaBnIr

 

分享到:
评论
7 楼 eddielee9217 2017-06-08  
引入的baen, service层不要用@Service.  如果加了 无论是否@Configuration和指定路径,一样显示出来 直接无视了@Configuration
6 楼 xautlove 2017-04-10  
5 楼 颖宝blingbling 2017-03-06  
            
4 楼 颖宝blingbling 2017-03-06  
s       
3 楼 林祥纤 2016-12-11  
yangjigang 写道
确实好文,正在学习,感谢分享。



Thank you very much !
2 楼 林祥纤 2016-12-11  
yangjigang 写道
确实好文,正在学习,感谢分享。



Thank you very much !
1 楼 yangjigang 2016-12-11  
确实好文,正在学习,感谢分享。

相关推荐

    47. Spring Boot发送邮件【从零开始学Spring Boot】

    通过学习本文,你可以掌握Spring Boot集成JavaMailSender接口来发送邮件的基本步骤和配置。 首先,我们需要在Spring Boot项目中引入必要的依赖。在`pom.xml`或`build.gradle`文件中添加Spring Boot的`spring-boot-...

    27. Spring Boot Junit单元测试【从零开始学Spring Boot】

    Spring Boot Junit单元测试【从零开始学Spring Boot】"的主题,深入探讨Spring Boot中Junit单元测试的使用方法和最佳实践。 首先,我们要了解什么是单元测试。单元测试是一种针对软件中的最小可测试单元(如方法)...

    从零开始学Spring Boot

    1.34 Spring Boot导入XML配置 1.35 Spring Boot使用@SpringBootApplication注解 1.36 Spring Boot 监控和管理生产环境 1.37 Spring Boot的启动器Starter详解 1.38 Spring Boot集成Redis实现缓存机制 1.39 Spring ...

    38. Spring Boot分布式Session状态保存Redis【从零开始学Spring Boot】

    在Spring Boot的配置类中,启用Spring Session并指定使用Redis作为存储策略: ```java @Configuration public class SessionConfig { @Bean public RedisConnectionFactory redisConnectionFactory() { ...

    92.Spring Boot使用模板velocity【从零开始学Spring Boot】

    在现代Java Web开发中,Spring Boot以其简洁的配置、强大的功能和高效的开发效率,成为了许多开发者的首选框架。而Velocity作为一款轻量级的模板引擎,能够帮助我们快速生成动态HTML页面,极大地提高了前端展示的...

    15. Spring Boot使用Druid和监控配置【从零开始学Spring Boot】

    在本篇【从零开始学Spring Boot】系列中,我们将探讨如何在Spring Boot项目中集成并配置Druid数据源以及其监控功能。Druid是一个强大的数据库连接池,它提供了丰富的监控、扩展性以及性能优化特性。Spring Boot简化...

    29. Spring boot 文件上传(多文件上传)【从零开始学Spring Boot】

    1. **文件大小限制**:Spring Boot默认会限制上传文件的大小,你可以通过配置`spring.servlet.multipart.max-file-size`和`spring.servlet.multipart.max-request-size`来调整限制。 2. **文件验证**:在实际应用中...

    16. Spring Boot使用Druid(编程注入)【从零开始学Spring Boot】

    在本篇【从零开始学Spring Boot】系列中,我们将探讨如何在Spring Boot项目中使用Druid数据源进行编程注入。Druid是一个优秀的数据库连接池,它提供了强大的监控和扩展功能,是许多企业级应用首选的数据源解决方案。...

    37. Spring Boot集成EHCache实现缓存机制【从零开始学Spring Boot】

    通过自动配置和起步依赖,Spring Boot使得开发者可以快速搭建项目并开始开发。 接下来,我们讨论**EHCache**。EHCache是一款开源的、内存中的数据缓存系统,广泛用于Java应用程序中。它可以缓存对象,减少数据库...

    39.1 Spring Boot Shiro权限管理【从零开始学Spring Boot】

    Spring Boot以其简洁的配置和快速的应用开发而闻名,而Shiro则是一个轻量级的安全框架,适用于身份验证、授权、会话管理和安全性相关的缓存。结合两者,我们可以构建一个高效且易于维护的权限控制系统。 首先,我们...

    39.2. Spring Boot Shiro权限管理【从零开始学Spring Boot】

    Spring Boot以其简洁的配置和快速的应用开发能力而闻名,而Shiro则是一个强大的安全管理框架,提供了认证、授权、会话管理和安全加密等功能。通过结合两者,我们可以构建一个高效且易于维护的安全系统。 首先,我们...

    41. Spring Boot 使用Java代码创建Bean并注册到Spring中【从零开始学Spring Boot】

    这是Spring Boot的核心特性之一,它使得我们能够以编程方式管理对象,而无需XML配置。让我们逐步解析这个过程。 首先,了解Spring Boot的基础。Spring Boot旨在简化Spring应用程序的初始设置和配置,通过“约定优于...

    19. [视频]Spring Boot 添加JSP支持【从零开始学Spring Boot】

    以下是一个详细的过程,指导你如何从零开始在Spring Boot应用中集成并使用JSP。 首先,我们需要理解Spring Boot的默认视图解析机制。Spring Boot推荐使用Thymeleaf、Freemarker或Mustache等模板引擎,因为它们提供...

    8. 使用JPA保存数据【从零开始学Spring Boot】

    在本篇【从零开始学Spring Boot】系列中,我们将探讨如何使用Java Persistence API (JPA) 来保存数据。JPA是Java平台上的一个标准,它为对象关系映射(ORM)提供了一种规范,使得开发人员可以使用Java对象来操作数据库...

    spring-boot实战PDF 完整版和随书源码.7z

    3. 零配置:Spring Boot推崇“约定优于配置”的原则,很多配置都有默认值,极大地减少了繁杂的配置工作。 4. Starter POMs:Spring Boot通过一系列的Starter POMs(父POM)来简化Maven配置,每个Starter POM都对应...

    spring-boot-starter-parent-1.5.13.RELEASE.zip

    Starter Parent是一个特殊的Maven父POM,它提供了一组默认的配置,使得开发者在构建Spring Boot应用时,不必从零开始设置许多基础构建属性。 描述中提到的"spring-boot项目pom.xml中parent依赖文件spring-boot-...

    Spring Boot 官方文档1.4.0.M3

    文档是学习和掌握Spring Boot不可或缺的资源,文档中的各个部分详细介绍了如何从零开始安装、配置和使用Spring Boot,以及如何进行项目开发、打包、测试和部署。文档中还包含了常见问题的解答,帮助开发者快速上手和...

Global site tag (gtag.js) - Google Analytics