S++

千线一眼

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

Spring-初识Spring

Spring快速入门

1. 创建maven项目

创建默认的maven项目就行,一路下一步

2. 修改pom.xml

注意:版本应该根据自己的需求来选择
我们需要修改的是:

  • 打包方式为jar包
  • 添加spring依赖
  • 添加单元测试依赖
    <packaging>jar</packaging>

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.2.5.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.10</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

3. 编写一些接口和实现类

我这里写一个UserDao接口和UserDaoImpl实现类

package com.sjj.dao;

public interface UserDao {
    public void test_1();
}

package com.sjj.dao.impl;

import com.sjj.dao.UserDao;

public class UserDaoImpl implements UserDao {
    @Override
    public void test_1() {
        System.out.println("测试");
    }
}

4. 创建spring上下文配置文件,并绑定实现类

我命名为appContext.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="userDao" class="com.sjj.dao.impl.UserDaoImpl"></bean>
</beans>

5. 测试

package com.sjj.dao;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class UserDaoTest {
    @Test
    public void test_1(){
        ApplicationContext app = new ClassPathXmlApplicationContext("appContext.xml");
        UserDao userDao = (UserDao) app.getBean("userDao");
        userDao.test_1();
    }
}

Spring配置文件-Bean标签

Bean标签的基本配置

用于配置对象交由Spring处理,默认调用类的无参构造,没有无参构造会创建失败

基本属性

  • id:唯一标识、不允许重复
  • class:Bean的全限定类名

范围配置scope

取值范围 说明
singleton 默认值,单例的
prototype 多例的
request WEB项目中,Spring创建一个Bean对象,将对象传入request域中
session WEB项目中,Spring创建一个Bean对象,将对象传入session域中
global session WEB项目中,作用于Portlet环境,如果没有Portlet环境,相当于session

单例的在配置文件加载的时候就会被创建。而多例的只有当在使用getBean是才会创建,对象长时间不使用会删除对象。

Bean标签的生命周期配置

  • init-method:指定类中初始化方法名称
  • destroy-method:指定类中销毁方法的名称

Bean实例化方式

  • 无参构造方法(默认)
  • 工厂方法(静态和实例)
    • 静态的方法将class属性转为工厂类,然后添加一个factory-method属性
    • 实例的方法先用bean标签实例工厂,然后在目标的bean标签中需要用到属性factory-bean和factory-method

Spring配置文件-依赖注入

如果现在新有一个类接口UserService依赖于UserDao,我们希望将UserDao写入UserService中,有两种办法:

  • 使用构造方法
    public UserServiceImpl(UserDao userDao) {
        this.userDao = userDao;
    }
    <bean id="userService" class="com.sjj.service.impl.UserServiceImpl">
        <constructor-arg name="userDao" ref="userDao" />
    </bean>

  • 使用set方法
import com.sjj.dao.UserDao;
import com.sjj.service.UserService;

public class UserServiceImpl implements UserService {

    private UserDao userDao;

    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }

    @Override
    public void UserServiceTest() {
        userDao.userDaoTest();
    }
}
    <bean id="userDao" class="com.sjj.dao.impl.UserDaoImpl" />
    <bean id="userService" class="com.sjj.service.impl.UserServiceImpl">
        <property name="userDao" ref="userDao" />
    </bean>

注入的类型还可以是普通类型、引用数据类型、集合数据类型
使用普通类型,这时候不是使用ref而是value属性
使用引用集合之类的属性需要对应的子标签

Spring配置文件-引入其他配置文件

引入其他配置文件是为了分模块开发

<import resoure="applicationContext-xxx.xml"/>

posted on   S++  阅读(19)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示