当前位置: 首页 > news >正文

Spring第一个helloWorld

Spring

简介:

轻量级:Spring是非侵入性的-基于Spring开发的应用中的对象可以不依赖于Spring的API

依赖注入(DI—dependdency injection、IOC)

面向切面编程:(AOP—aspect oriented programming)

容器:Spring是一个容器,因为它包含并管理应用对象的生命周期

框架:Spring实现类使用简单的组件配置组合成一个复杂的应用。在Spring中可以使用XML和java注解组合这些对象

一站式:在IOC和AOP的基础上可以整合各种企业应用的开源框架和优秀的第三方类库(实际上Spring自身也提供类展现层的SpringMVC和持久层的Spring JDBC)

Spring 设计理念

      Spring是面向Bean的编程

Spring 两大核心技术

     控制反转(IoC:)将组件对象的控制权从代码本身转移到外部容器

            组件化对象的思想:分离关注点,使用接口,不再关注实现

目的:解耦合.实现每个组件时只关注组件内部的事情

编写第一个HelloWorld程序

安装Spring tool suite

     Spring tool suite是一个Eclipse插件,利用该插件可以更方便的在Eclipse平台上开发基于Spring的应用

安装后将Eclipse进行重启

搭建Spring开发环境

把以下jar包加入到工程的classpath下:

 

 

Spring的配置文件:一个典型的Spring项目需要创建一个或多个Bean的配置文件,这些配置文件用于在Spring IOC容器里配置Bean.Bean的配置文件可以放在classpath下,也可以放在其它目录下。

现在可以写我们的HelloWorld,结构如下:

 

 

applicationContext.xml是Spring的配置文件

file-->new-->other

 

 

创建以后

效果如下:

 

 

会为我们生成Spring配置文件的头信息,这是我们之前安装Spring tool suite插件为我们做的

编写javaBean

我们编写的javaBean代码为

package cn.bdqn.spring;

public class HelloSpring {

       //定义who属性,该属性的值通过Spring框架进行设置

       private String who=null;

       /**

        * 打印方法

        */

       public  void print(){

              System.out.println("hello,"+this.getWho()+"!");

       }

       /**

        * 获得who

        * @return who

        */

       public String getWho(){

              return who;

       }

       /**

        * 设置who

        * @param who

        */

       public void setWho(String who){

              this.who=who;}    

}

编写Spring的配置文件

现在编写我们的Spring配置文件,代码如下:

<?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属性值是我们javaBean的全类名

   id是唯一标识

   property标签中的name属性的值是我们javaBean中的属性

   value  给name属性值对应的javaBean中的属性 设置的值

       -->

       <bean id="HelloSpring" class="cn.bdqn.spring.HelloSpring">

              <property name="who"  value="spring"></property>

       </bean>

</beans>

 

编写测试类

编写测试类,代码如下:

package cn.bdqn.test;

 

import org.springframework.context.support.ClassPathXmlApplicationContext;

import cn.bdqn.spring.HelloSpring;

public class Test {

       public static void main(String[] args) {

//           创建Spring 的IOC容器对象

              ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");

/*          从IOC容器中获取Bean实例 "HelloSpring"是我们applicationContext.xml中配置的id属性的值*/

              HelloSpring bean = (HelloSpring)context.getBean("HelloSpring");

//           调用print方法

              bean.print();   

       }

}

相关文章:

  • 剑指offer十五之反转链表
  • 数据库 之 创建,删除,查看 数据库
  • 张高兴的 Windows 10 IoT 开发笔记:ToF Sensor VL53L0X
  • 积分计算题
  • poj2420 A Star not a Tree?
  • 数据结构(一)
  • C++类对应的内存结构
  • PM2 常用命令
  • 文因互联CEO鲍捷:做聊天机器人有哪些坑?
  • 使用Flash打造可定义界面风格的文件上传控件
  • go 入门学习笔记之 select + chan (十一)
  • HTML5 history API实践
  • 项目中使用RDLC报表
  • Workflow笔记2——状态机工作流
  • Octoroit OS VB操作系统简单介绍
  • 【Leetcode】104. 二叉树的最大深度
  • canvas 五子棋游戏
  •  D - 粉碎叛乱F - 其他起义
  • Go 语言编译器的 //go: 详解
  • HTTP请求重发
  • Java 多线程编程之:notify 和 wait 用法
  • LeetCode算法系列_0891_子序列宽度之和
  • Less 日常用法
  • Object.assign方法不能实现深复制
  • PAT A1050
  • SpringCloud集成分布式事务LCN (一)
  • 规范化安全开发 KOA 手脚架
  • 机器学习 vs. 深度学习
  • 聊聊directory traversal attack
  • 浅谈web中前端模板引擎的使用
  • 小程序开发之路(一)
  • 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  • 正则表达式-基础知识Review
  • ​flutter 代码混淆
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • # 数据结构
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • (html转换)StringEscapeUtils类的转义与反转义方法
  • (九)信息融合方式简介
  • (南京观海微电子)——COF介绍
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (四) 虚拟摄像头vivi体验
  • (转)jdk与jre的区别
  • .NET DataGridView数据绑定说明
  • .NET MAUI学习笔记——2.构建第一个程序_初级篇
  • .NET/C# 的字符串暂存池
  • .net6Api后台+uniapp导出Excel
  • .net连接oracle数据库
  • .net实现头像缩放截取功能 -----转载自accp教程网
  • /dev/VolGroup00/LogVol00:unexpected inconsistency;run fsck manually
  • @取消转义
  • [ NOI 2001 ] 食物链
  • [@Controller]4 详解@ModelAttribute
  • [20160902]rm -rf的惨案.txt
  • [20170705]diff比较执行结果的内容.txt