Spring介绍

Spring概述

Spring是一个开源框架,Spring是2003年兴起的轻量级java开发框架,由Rod Johnson 在其著作 Expert One-On-One J2EE Development and Design 中阐述的部分理念和原形衍生而来。它是为了解决企业级开发的复杂性而创建的。Spring使用基本的javaBaen来完成以前只可能由EJB完成的事情,然而Spring的用途不仅限于服务器端的开发,从简单性、可测试性、低耦合的角度而言任何java应用都可以在spring中受益。

简单的来说Spring就是轻量级的控制反转(IOC)和面向切面(AOP)的容器框架。

Spring的好处

方便解耦,简化开发

Spring就是一个大工厂,专门负责生成Bean,可将所有对象,和依赖关系维护由Spring管理。

AOP编程的支持

Spring提供面向切面编程,可以方便的实现对程序进行拦截、运行监控等功能。

声明事务的支持

只需要通过配置就可以对事务进行管理,而无需手动编程。

方便程序的测试

Spring对junit支持,可以通过注解方便的测试Spring程序。

方便集成各种优秀框架

Spring不排斥各种优秀的框架,其内部提供了对各种优秀框架的支持,比如Struts2、Hibernate、MyBatis等。

降低javaEE API的使用难度

对java EE 开发中一些难用的API(JDBC、JavaMail)等都提供了封装 ,使这些API应用难度大大降低。

Spring体系结构

Spring框架是一个分层架构,它包含一系列的功能要素,并被分为大约20个模块,这些模块分为:

Core Container、Data Access/intergration、Web、AOP(Aspect Oriented Programming)、Instrumentation和测试部分,如下图所示:

在项目中的架构

Web层:Struts2、SpringMVC

dao层:Hibernate、Mybatis

Spring入门案例

编写流程

创建项目

导入jar

然后点击Next

然后点击Finish

下面是创建好的项目结构,我创建了bean包,测试类、和配置文件

idea可以自动生成是Spring的配置文件  步骤是在需要生成配置文件的目录上鼠标右键--》New--》XML Configuration File--》Spring Config--》然后起文件名点击Finish

下面是写好的测试 Person类

package com.spring.bean;

/**

* @Author: 007

* @Date: 2019/1/27/0027 10:20

* @Version 1.0

* @Description: 创建测试用的bean

*/

public class Person {

private String name; //姓名

private int age; //年龄

public Person() {

}

public Person(String name, int age) {

this.name = name;

this.age = age;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

@Override

public String toString() {

return "Person{" +

"name='" + name + '\'' +

", age=" + age +

'}';

}

}

配置Spring的核心xml文件

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的配置文件来获取Bean(Bean其实就是一个new好的对象)

package com.spring.test;

import com.spring.bean.Person;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

/**

* @Author: 007

* @Date: 2019/1/27/0027 10:21

* @Version 1.0

* @Description:

*/

public class Test {

public static void main(String[] args) {

//查询类路径 加载配置文件

ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml");

//根据id获取bean

//Spring就是一个大工厂(容器)专门生成bean bean就是对象

Person person = (Person) applicationContext.getBean("Person");

//输出获取到的对象

System.out.println("person = " + person);

}

}

下面是测试完成后的截图

至此入门案例编写完成

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

本文标题: idea创建Spring项目的方法步骤(图文)

本文地址: http://www.cppcns.com/ruanjian/java/251173.html

idea创建包怎么让包分层_idea创建Spring项目的方法步骤(图文)相关推荐

  1. scala java maven项目_IntelliJ IDEA下Maven创建Scala项目的方法步骤

    环境:IntelliJ IDEA 版本:Spark-2.2.1 Scala-2.11.0 利用 Maven 第一次创建 Scala 项目也遇到了许多坑 创建一个 Scala 的 WordCount 程 ...

  2. R语言dplyr包和tidyr包创建交叉表(列联表、crosstab)实战

    R语言dplyr包和tidyr包创建交叉表(列联表.crosstab)实战 目录 R语言dplyr包和tidyr包创建交叉表(列联表.crosstab)实战

  3. R语言使用forestplot包绘制森林图:编码创建森林图仿真数据、汇总线修改、元素位置调整、垂直线、字体、风格、置信区间、线型、图例、刻度、标签等

    R语言使用forestplot包绘制森林图:编码创建森林图仿真数据.汇总线修改.元素位置调整.垂直线.字体.风格.置信区间.线型.图例.刻度.标签等 目录

  4. 创建和应用Java包文件的两种方式

    <Java编程艺术>章节选登.作者:高永强 清华大学出版社 (即将出版) 12.1  包--package       包是Java提供的文件管理机制.包把功能相似的类,按照Java的名字 ...

  5. python中如何创建包_如何在Python中创建命名空间包?

    TL:博士: 在Python3.3上,您不必做任何事情,只要不在名称空间包目录中放置任何__init__.py,它就可以工作了.在pre-3.3中,选择pkgutil.extend_path()解决方 ...

  6. ROS系统 创建工作空间与功能包

    ROS 学习目标: 学习内容: 使用环境 操作步骤: 基本命令 二.使用步骤 创建工作空间 编译工作空间 创建功能包 使用C++执行程序 编写源文件 编辑功能包下的 Cmakelist.txt文件 修 ...

  7. ROS: catkin和rosmake创建和编译功能包、执行节点

    ROS: catkin和rosmake创建和编译功能包 1.编译功能包 在工作空间的根目录下执行编译才行,比如我工作空间根目录是/home/kandi/catkin_ws 2.编译生成目标文件 这里以 ...

  8. linux添加以太网头部函数,linux – 在内核模块中创建一个以太网数据包并发送它...

    我需要创建一个以太网数据包并在我的内核模块中发送它.有人可以帮我这样做吗? 我想我需要使用dev_alloc_skb创建一个skb,然后我需要编写mac_ethernet,插入数据并使用dev_que ...

  9. linux 下载rpm包到本地,createrepo:创建本地YUM源

    如何下载rpm包到本地 设置yum安装时,保留rpm包. 1.编辑 /etc/yum.conf 将keepcache的值设置为1; 这样就可以将yum安装时的rpm包保存在 /var/cache/yu ...

最新文章

  1. 如何开启远程(win7win8)
  2. 为什么正则化可以起到对模型容量进行控制_正则化为什么能防止过拟合(重点地方标红了)...
  3. java wed登录面 代码_java web 登录界面
  4. Android NDK 编译选项设置[zhuan]
  5. Go 语言学习笔记(三):类型系统
  6. 在Linux系统下, 可以用一个命令很容易批量删除.svn的文件夹
  7. 单片机按键防抖程序_这些单片机按键设计方案,请拿好,不谢!
  8. 为什么说Java中只有值传递(另一种角度)
  9. PHP Cookie和Session
  10. 深度学习(三十九)LSTM、GRU网络入门学习-未完待续
  11. 嵌入式工程师开发工作主要做些什么,以后收入怎样
  12. Mysql日期差的函数
  13. 深入浅出linux驱动,Linux Kernel 字符驱动的深入浅出讲解
  14. ODBC连接oracle 10g 客户端
  15. protues打不开问题
  16. 应用案例 | 2018款奥迪 A4 Avant 车发动机无法起动故障诊断
  17. Win11设置人离开后电脑自动锁屏教程
  18. linux运行minecraft,如何在DeepinLinux下运行Minecraft光影整合包进行游戏
  19. 机器学习基础——损失函数与风险函数
  20. 8in1模拟器v2模拟飞行_重新想象飞行模拟器:过去和现在

热门文章

  1. SAP云平台上的502 Bad Gateway错误
  2. 打印某个user在指定时间段内做过的personalization detail
  3. 如何让某些用户对Marketing Cloud的contact数据只能实施只读操作
  4. use regular expression instead of ABAP function module to parse attachment
  5. SAP APF框架错误消息Filter is too complex的处理
  6. SAP WebIDE的本地安装方式
  7. SAP Spartacus organization unit里org list的focus实现问题
  8. SAP CRM Enterprise search后退按钮的实现
  9. 自己开发的在线视频下载工具,基于Java多线程
  10. php中orm模型,模型model