idea創(chuàng)建Spring項(xiàng)目的方法步驟(圖文)
Spring介紹
Spring概述
Spring是一個(gè)開(kāi)源框架,Spring是2003年興起的輕量級(jí)java開(kāi)發(fā)框架,由Rod Johnson 在其著作 Expert One-On-One J2EE Development and Design 中闡述的部分理念和原形衍生而來(lái)。它是為了解決企業(yè)級(jí)開(kāi)發(fā)的復(fù)雜性而創(chuàng)建的。Spring使用基本的javaBaen來(lái)完成以前只可能由EJB完成的事情,然而Spring的用途不僅限于服務(wù)器端的開(kāi)發(fā),從簡(jiǎn)單性、可測(cè)試性、低耦合的角度而言任何java應(yīng)用都可以在spring中受益。
簡(jiǎn)單的來(lái)說(shuō)Spring就是輕量級(jí)的控制反轉(zhuǎn)(IOC)和面向切面(AOP)的容器框架。
Spring的好處
方便解耦,簡(jiǎn)化開(kāi)發(fā)
Spring就是一個(gè)大工廠,專門負(fù)責(zé)生成Bean,可將所有對(duì)象,和依賴關(guān)系維護(hù)由Spring管理。
AOP編程的支持
Spring提供面向切面編程,可以方便的實(shí)現(xiàn)對(duì)程序進(jìn)行攔截、運(yùn)行監(jiān)控等功能。
聲明事務(wù)的支持
只需要通過(guò)配置就可以對(duì)事務(wù)進(jìn)行管理,而無(wú)需手動(dòng)編程。
方便程序的測(cè)試
Spring對(duì)junit支持,可以通過(guò)注解方便的測(cè)試Spring程序。
方便集成各種優(yōu)秀框架
Spring不排斥各種優(yōu)秀的框架,其內(nèi)部提供了對(duì)各種優(yōu)秀框架的支持,比如Struts2、Hibernate、MyBatis等。
降低javaEE API的使用難度
對(duì)java EE 開(kāi)發(fā)中一些難用的API(JDBC、JavaMail)等都提供了封裝 ,使這些API應(yīng)用難度大大降低。
Spring體系結(jié)構(gòu)
Spring框架是一個(gè)分層架構(gòu),它包含一系列的功能要素,并被分為大約20個(gè)模塊,這些模塊分為:
Core Container、Data Access/intergration、Web、AOP(Aspect Oriented Programming)、Instrumentation和測(cè)試部分,如下圖所示:
在項(xiàng)目中的架構(gòu)
Web層:Struts2、SpringMVC
dao層:Hibernate、Mybatis
Spring入門案例
編寫流程
創(chuàng)建項(xiàng)目
導(dǎo)入jar
然后點(diǎn)擊Next
然后點(diǎn)擊Finish
下面是創(chuàng)建好的項(xiàng)目結(jié)構(gòu),我創(chuàng)建了bean包,測(cè)試類、和配置文件
idea可以自動(dòng)生成是Spring的配置文件 步驟是在需要生成配置文件的目錄上鼠標(biāo)右鍵--》New--》XML Configuration File--》Spring Config--》然后起文件名點(diǎn)擊Finish
下面是寫好的測(cè)試 Person類
package com.spring.bean; /** * @Author: 007 * @Date: 2019/1/27/0027 10:20 * @Version 1.0 * @Description: 創(chuàng)建測(cè)試用的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文件
<?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 id:給配置的類起個(gè)后續(xù)在容器中獲取用的id class:類所在的路徑 --> <bean id="Person" class="com.spring.bean.Person"/> </beans>
在程序中讀取Spring的配置文件來(lái)獲取Bean(Bean其實(shí)就是一個(gè)new好的對(duì)象)
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"); //根據(jù)id獲取bean //Spring就是一個(gè)大工廠(容器)專門生成bean bean就是對(duì)象 Person person = (Person) applicationContext.getBean("Person"); //輸出獲取到的對(duì)象 System.out.println("person = " + person); } }
下面是測(cè)試完成后的截圖
至此入門案例編寫完成
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
springcloud如何獲取網(wǎng)關(guān)封裝的頭部信息
這篇文章主要介紹了springcloud獲取網(wǎng)關(guān)封裝的頭部信息,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06java 避免出現(xiàn)NullPointerException(空指針)的方法總結(jié)
這篇文章主要介紹了java 避免出現(xiàn)NullPointerException(空指針)的方法總結(jié)的相關(guān)資料,需要的朋友可以參考下2017-09-09解決java.util.zip.ZipException: Not in GZIP&nbs
這篇文章主要介紹了解決java.util.zip.ZipException: Not in GZIP format報(bào)錯(cuò)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12SpringBoot后端解決跨域問(wèn)題的3種方案分享
這篇文章主要給大家分享介紹了關(guān)于SpringBoot后端解決跨域問(wèn)題的3種方案,跨域指的是瀏覽器不能執(zhí)行其他網(wǎng)站的腳本,它是由瀏覽器的同源策略造成的,是瀏覽器施加的安全限制,需要的朋友可以參考下2023-07-07SpringBoot AOP方式實(shí)現(xiàn)多數(shù)據(jù)源切換的方法
本篇文章主要介紹了SpringBoot AOP方式實(shí)現(xiàn)多數(shù)據(jù)源切換的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-03-03詳解Java的Hibernat框架中的Map映射與SortedMap映射
這篇文章主要介紹了Java的Hibernat框架中的Map映射與SortedMap映射,Hibernat是Java的SSH三大web開(kāi)發(fā)框架之一,需要的朋友可以參考下2015-12-12idea批量啟動(dòng)多個(gè)微服務(wù)具體實(shí)現(xiàn)
這篇文章主要給大家介紹了關(guān)于idea批量啟動(dòng)多個(gè)微服務(wù)的具體實(shí)現(xiàn),在微服務(wù)開(kāi)發(fā)過(guò)程中,我們經(jīng)常要在本地啟動(dòng)很多個(gè)微服務(wù),文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-07-07