第1章 spring入門(3課時(shí))

常見面試題

https://blog.csdn.net/a745233700/article/details/80959716

第1-3節(jié)

spring入門

spring是開源的輕量級(jí)的開發(fā)框架症昏。
網(wǎng)站:https://spring.io
框架特征:
1)輕量-1M

  1. 控制反轉(zhuǎn)-IOC (依賴注入DI)
    3)面向切面編程 -AOP
    4)容器(創(chuàng)建和管理BEAN)
    5)框架
    spring框架優(yōu)點(diǎn)
    1)解藕
    2)AOP支持
    3)聲明事務(wù)
    4)方便程序測試
    5)方便與其他框架集成
    redis mongodb(nosql) hibernate mybatis activemq......
    6)java ee的使用難度
    7)spring源碼(很多設(shè)計(jì)模式 工廠模式 單例)

優(yōu)勢:
低侵入性
依賴注入
aop方便事務(wù)配置,動(dòng)態(tài)為類添加
spring可是全有全無的程序
一站式的:
每層都可以實(shí)現(xiàn)
web層:springmvc
service層:ioc
dao:jdbcTemplate

Spring版本
2-不太用
3-少量用戶在用
4-新用戶都在用(4.3.8)

spring構(gòu)成

Jsp-springmvc-springweb(pojo vo)-springcontext (service)-dao(hibernate mybatis jdbctemplate)

image.png

主流:
Struts+spring+hibernate(SSH)
spring+springmvc+mybatis(SSM)
Webservice(SOA 跨語言 服務(wù)端--xml--客戶端)

新建spring工程

file-new -maven project-等-quickstart工程-springstudy

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.neuedu</groupId>
  <artifactId>Spring-ch01</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>Spring-ch01</name>
  <url>http://maven.apache.org</url>

  <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.version>5.0.4.RELEASE</spring.version>
  </properties>

  <dependencies>
   <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>${spring.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
  </dependencies>
</project>

傳統(tǒng)方式和spring方式創(chuàng)建對象不同
第一種 實(shí)例化類

public class UserService {
  public void add(){
      System.out.println("add方法被調(diào)用");
  }
  
  public static void main(String[] args) {
      UserService us=new UserService();
      us.add();
  }
}

第二種 工廠創(chuàng)建

public class UserServiceFactory {
  public static UserService getUserServie(){
      UserService us=new UserService();
      
      return us;
  }
  public static void main(String[] args) {
      UserService us= UserServiceFactory.getUserServie();
      us.add();
}
}

第三種 spring方式

public class UserSpringFactory {
    public static UserService getServie()
            throws ClassNotFoundException, InstantiationException, IllegalAccessException {
        UserService us = null;
        // 通過反射創(chuàng)建出對象
        Class c = Class.forName("com.neuedu.spring.chap01.UserService");
        // 強(qiáng)制轉(zhuǎn)換成UserService
        us = (UserService) c.newInstance();
        return us;
    }

    public static void main(String[] args)
            throws ClassNotFoundException, InstantiationException, IllegalAccessException {
        UserService u = UserSpringFactory.getServie();
        u.add();
    }
}

spring ioc:控制反轉(zhuǎn)(創(chuàng)建對象和給對象設(shè)置屬性)

1)創(chuàng)建工程-配置依賴(上面已完成)
2)引入配置文件ApplicationContext.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-4.3.xsd">
    
    
</beans>

3)建立dao service模擬用戶登錄

IUserDao

public interface IUserDao {
  public int login(String username,String pwd);
}

UserDaoImpl

public class UserDaoImpl implements IUserDao {

    @Override
    public int login(String username, String pwd) {
        // TODO Auto-generated method stub
        return 0;
    }
}

IUserServcie

public interface IUserService {
   public int login(String username,String pwd);
}

UserSeriveImpl

public class UserServiceImpl implements IUserService {
private IUserDao userDao;
    @Override
    public int login(String username, String pwd) {
        return userDao.login(username, pwd);
    }
    public IUserDao getUserDao() {
        return userDao;
    }
    public void setUserDao(IUserDao userDao) {
        this.userDao = userDao;
    }
}

配置文件中加入以下配置

<bean id="userDao" class="com.neuedu.dao.UserDaoImpl"></bean>

<bean id="userService" class="com.neuedu.service.UserServiceImpl">
   <property name="userDao" ref="userDao"></property>
</bean>

測試類:

public class UserTest {
  @Test
  public void test1(){
      //第一步 加載配置文件沐绒,獲取上下文(新)
      //1.1通過加載類路徑下的xml來獲取上下文
      ApplicationContext ctx= new ClassPathXmlApplicationContext("ApplicationContext.xml");
      //調(diào)用上下文中的方法加載類
      IUserService servcie=(IUserService) ctx.getBean("userService");
      //調(diào)用類里的方法
      servcie.login("wang.qj", "123456");
  }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末频鉴,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子愉适,更是在濱河造成了極大的恐慌,老刑警劉巖化撕,帶你破解...
    沈念sama閱讀 218,386評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件凳忙,死亡現(xiàn)場離奇詭異业踏,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)涧卵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門勤家,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人柳恐,你說我怎么就攤上這事伐脖。” “怎么了乐设?”我有些...
    開封第一講書人閱讀 164,704評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵讼庇,是天一觀的道長。 經(jīng)常有香客問我近尚,道長蠕啄,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,702評(píng)論 1 294
  • 正文 為了忘掉前任戈锻,我火速辦了婚禮歼跟,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘格遭。我一直安慰自己哈街,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評(píng)論 6 392
  • 文/花漫 我一把揭開白布拒迅。 她就那樣靜靜地躺著骚秦,像睡著了一般。 火紅的嫁衣襯著肌膚如雪璧微。 梳的紋絲不亂的頭發(fā)上作箍,一...
    開封第一講書人閱讀 51,573評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音前硫,去河邊找鬼蒙揣。 笑死,一個(gè)胖子當(dāng)著我的面吹牛开瞭,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播罩息,決...
    沈念sama閱讀 40,314評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼嗤详,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了瓷炮?” 一聲冷哼從身側(cè)響起葱色,我...
    開封第一講書人閱讀 39,230評(píng)論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎娘香,沒想到半個(gè)月后苍狰,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體办龄,經(jīng)...
    沈念sama閱讀 45,680評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評(píng)論 3 336
  • 正文 我和宋清朗相戀三年淋昭,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了俐填。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,991評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡翔忽,死狀恐怖英融,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情歇式,我是刑警寧澤驶悟,帶...
    沈念sama閱讀 35,706評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站材失,受9級(jí)特大地震影響痕鳍,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜龙巨,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評(píng)論 3 330
  • 文/蒙蒙 一笼呆、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧恭应,春花似錦抄邀、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至胆屿,卻和暖如春奥喻,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背非迹。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評(píng)論 1 270
  • 我被黑心中介騙來泰國打工环鲤, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人憎兽。 一個(gè)月前我還...
    沈念sama閱讀 48,158評(píng)論 3 370
  • 正文 我出身青樓冷离,卻偏偏與公主長得像,于是被迫代替她去往敵國和親纯命。 傳聞我的和親對象是個(gè)殘疾皇子西剥,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容