初識輕量級Java開源框架 --- Spring
作者:egg
出處:http://blog.csdn.net/zhangerqing
spring是一個輕量級Java框架,其核心思想就是DI(Dependency Injection,即依賴注入)和IoC(Inversion of Control,即控制反轉),因為其開源、低侵入性,現在已經席卷了很大一部分市場,其最大競爭對手乃是JavaEE框架EJB。EJB3.0以前,由於其笨重以及使用繁瑣,被人們無奈棄用,取而代之就是spring,但是spring也有它的局限性,就是spring對分布式的支持不好,但是EJB在這方面很有優勢,而且當前EJB3.0簡化了操作,使用不再繁瑣,競爭力進一步提升。所以,當前輕量級的JavaWeb項目,很多都是使用的spring,我們有必要把它學好!本章系Java之美[從菜鳥到高手演變]系列之spring框架初識,我希望大家和我一起,再次回顧下Spring的基礎知識,積極提出寶貴的意見和建議!本次學習使用的是Spring4.1 版本。
Modules
從這幅圖中我們可以看出來Spring的整體架構,主要分為六大模塊
Core Container
AOP and instrumentation
Aop模塊提供了面向切面編程的實現,和AspectJ集成。
Messaging
Messaging是spring4新增加的模塊,包含了一部分主要的基於message的應用的實現。
Data Access/Integration
Data access顧名思義,是spring對數據層提供的支持,是功能比較豐富的模塊。提供了包括JDBC,事物,ORM,JMS等一系列實現。
Web
Web模塊主要提供面向web的一些實現,例如多文件上傳,servlet監聽器以及spring mvc方面的支持。
Test
Test模塊主要是針對spring的各個模塊做各種各樣的測試,包括單元測試、集成測試等等。
關於各個模塊具體的解釋及作用我們會在后面的文章中一一提到,也請有興趣的讀者自行去查閱spring官方文檔,獲得更詳細的說明。
第一個Spring小程序
新建一個User類,一個UserDao類以及一個測試類:
User.java
- package com.adam.java.spring.po;
- public class User {
- private String name;
- private int age;
- private int score;
- 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;
- }
- public int getScore() {
- return score;
- }
- public void setScore(int score) {
- this.score = score;
- }
- public String toString(){
- return "tostring from user";
- }
- }
UserDao.java
- package com.adam.java.spring.dao;
- import com.adam.java.spring.po.User;
- public class UserDao {
- private User user;
- public void add(){
- System.out.println("add from userdao");
- System.out.println(user.toString());
- }
- public User getUser() {
- return user;
- }
- public void setUser(User user) {
- this.user = user;
- }
- }
DITest.java
- package com.adam.java.spring;
- import org.springframework.context.ApplicationContext;
- import org.springframework.context.support.ClassPathXmlApplicationContext;
- import com.adam.java.spring.dao.UserDao;
- public class DITest {
- @SuppressWarnings("resource")
- public static void main(String[] args) {
- ApplicationContext atx = new ClassPathXmlApplicationContext("beans.xml");
- UserDao userDao = (UserDao) atx.getBean("userDao");
- userDao.add();
- }
- }
一個配置文件beans.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="user" class="com.adam.java.spring.po.User"/>
- <bean id="userDao" class="com.adam.java.spring.dao.UserDao">
- <property name="user" ref="user"/>
- </bean>
- </beans>
執行測試類,得出如下輸出:
- add from userdao
- tostring from user
- // from: http://blog.csdn.net/zhangerqing/article/details/8546049