Spring

Spring-IOC

spring-ioc概念

 

IOC为spring的核心容器,用来创建、管理、存储组件

spring项目结构

 

1  pom.xml

2  properties

3  config

4  pojo

5  controller

6  service

7  mapper

 spring依赖

<!--spring context依赖-->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>6.0.6</version>
</dependency>

config  配置类

package com.demo.config;

@Configuration  // 标记该类为 Spring 配置类
@ComponentScan(basePackages = "com.demo")  // 扫描指定包下的组件
@PropertySource("classpath:jdbc.properties")  // 加载外部 properties / yml 到 Spring 项目中

public class JavaConfig {

    @Value("${demo.url}")  // 获取properties / yml 中 demo.url 对应的配置值,赋值给下面变量
    private String url;


    @Bean(destroyMethod = "close")  // 把该方法返回的对象注册为 Spring 容器中的 Bean,能够被 Spring 管理和供其他组件依赖注入
    public DruidDataSource dataSource(){
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setUrl(url);
        dataSource.setDriverClassName(driver);
        dataSource.setUsername(username);
        dataSource.setPassword(password);
        return dataSource;
    }

    @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)  // 指定该Bean生命周期的范围
    @Bean
    public JdbcTemplate jdbcTemplate(DataSource dataSource){
        JdbcTemplate jdbcTemplate = new JdbcTemplate();
        jdbcTemplate.setDataSource(dataSource);
        return jdbcTemplate;
    }

}

 

常见作用域

        singleton(默认) 

                整个 Spring 容器中只存在一个该 Bean 的实例,所有请求都共享这一个实例

        prototype

                每次从容器中获取该 Bean 时,都会创建一个新的实例

        request(Web环境)

                每个 HTTP 请求会创建一个新的 Bean 实例,仅在当前请求内有效

        session(Web 环境)

                每个用户会话(Session)创建一个 Bean 实例,在会话有效期内共享。

        application(Web 环境)

                整个 Web 应用生命周期内只存在一个实例,类似于 singleton,但作用域是

                 ServletContext 级别

 

bean方法属性

        initMethod

                指定 Bean 初始化完成后执行的方法(初始化回调)

        destroyMethod

                指定 Bean 销毁前执行的方法(销毁回调)

 

配置类导入IOC容器

package com.demo;

public class SpringTest {

    @Autowired  // 依赖注入,把项目内的类导入该类
    private StudentController studentController;
    
    @Test
    public  void testRun(){

        AnnotationConfigApplicationContext applicationContext =
                new AnnotationConfigApplicationContext(JavaCon
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值