前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一文讲透Spring三种集成方式

一文讲透Spring三种集成方式

作者头像
灬沙师弟
发布2023-03-07 09:44:21
2820
发布2023-03-07 09:44:21
举报
文章被收录于专栏:Java面试教程

哈喽,大家好,我是Java小面。

今天推文之前,给大家介绍一个朋友。

你见过敢把自己的创业经历,用1万多字和几十张真人出镜的图片,展示出来的公众号博主吗?

我认识这样一位:少峰【公众号=有峰来信】

他的公众号文章《我互联网创业的这十五年》中有图有真相。

少峰有三宝叨逼、专业、案例屌。15年专注互联网各种骚操作,尤其针对客服培训、朋友圈装逼、免费流量获取等,压缩式培训,7天从小白到单王!

他还组建了一个互联网电商圈子「少峰读书会」,让更多鸡贼的人一起学习营销,发家致富,努力向前,且不务正业。

能讲课的老师很多,能连续500多天写公众号的独此一家,没有废话,只有结果。

大家可以关注少峰的公众号【有峰来信】。

后发回复“C001”还能免费获得[鸡贼营销攻略礼包],仅限前20名哦!

本文讲解Spring底层的三种集成案例,虽然现在SpringBoot目前已大行其道,但底层其实还是这些内容!

让我们来轻松欣赏下吧。

案例一:HelloWorld快速入门(基于xml驱动)

1、新建空项目

这是15年以前的书籍常见的helloword案例,整体结构包含后续的文件结构如下:

2、pom导入依赖

代码语言:javascript
复制
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.1.9.RELEASE</version>
        </dependency>
    </dependencies>

3、添加spring配置文件

代码语言:javascript
复制
<?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">
    <bean class="com.iyyxx.HelloWorld" id="helloWorld"/>
</beans>

3、编写测试代码

代码语言:javascript
复制
public class HelloWorld {
    public String say(){
        return "Hello Spring";
    }

    public static void main(String[] args) {
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring.xml");
//        HelloWorld helloWorld = (HelloWorld) applicationContext.getBean("helloWorld"); //可以用xml中配置的id,或下面用class的方式,更推荐
        HelloWorld helloWorld = (HelloWorld) applicationContext.getBean(HelloWorld.class);
        System.out.println(helloWorld.say());
    }
}

Spring版本有很多,目前2022年10月,市场主流Spring5,最新5.3,这里采用验证合适5.X.X.Release版本

案例二:HelloWorld快速入门(注解驱动)

Spring3流行的时候,市场热门书籍一边倒的使用纯注解驱动,后面证实确实成了趋势!

1、新建空项目

同案例1

2、pom导入依赖

同案例1

3、添加spring配置类

案例1是创建配置文件,这里是创建配置类

代码语言:javascript
复制
@Configuration
public class SpringConfig {
    @Bean
    public HelloWorld helloWorld(){
        return new HelloWorld();
    }
}


3、编写测试代码

案例1采用ClassPathXmlApplicationContext,这里采用注解类AnnotationConfigApplicationContext

代码语言:javascript
复制
public class HelloWorld {
    public String say(){
        return "Hello Spring by Annotation";
    }

    public static void main(String[] args) {
        ApplicationContext applicationContext = new AnnotationConfigApplicationContext(SpringConfig.class); //这里采用注解容器类
        HelloWorld helloWorld = (HelloWorld) applicationContext.getBean(HelloWorld.class);
        System.out.println(helloWorld.say());
    }
}

Spring版本有很多,目前2022年10月,市场主流Spring5,最新5.3,这里采用验证合适5.X.X.Release版本,另外注解驱动还有另一种主流写法,具体如下

这也是在SpringBoot时代的常用做法

代码语言:javascript
复制
//另一种写法,用扫描器,Bean也用上@Component标签(mvc还有专有但雷同的标记如@Service@Controller)
@Configuration
@ComponentScan(basePackages = "com.iyyxx")
public class SpringConfig {
    @Bean
    public HelloWorld helloWorld(){
        return new HelloWorld();
    }
}
@Component
public class HelloWorld {
 //...
}

案例三:HelloWorld快速入门(注解驱动,但保留bean.xml)

有些历史项目喜欢这么玩,当年造成了不少困扰,这里补充一下,不过确实是SSM年代的主流!

具体配置与纯注解驱动类似,只是把扫包设置及后续可能要开启aop放到了xml中,并且spring容器管理类依旧使用ClassPathXmlApplicationContext

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop https://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
    <!-- 配置spring创建容器时扫描的包 -->
    <context:component-scan base-package="com.iyyxx"></context:component-scan>

    <!-- 使AOP支持注解 -->
    <aop:aspectj-autoproxy></aop:aspectj-autoproxy>
</beans>

结语

Spring 项目集成的三种方式非常轻松的完成了,是不是还不过瘾,后面还有一系列的【一文讲解透】系列分享给大家!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-11-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java面试教程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 案例一:HelloWorld快速入门(基于xml驱动)
  • 案例二:HelloWorld快速入门(注解驱动)
  • 案例三:HelloWorld快速入门(注解驱动,但保留bean.xml)
    • 结语
    相关产品与服务
    容器服务
    腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档