栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring-注解开发

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring-注解开发

文章目录
  • 注解开发定义bean
    • Demo1
  • 纯注解开发
    • Demo2
  • 注解开发总结
  • bean的管理
  • 依赖注入
    • Demo3
  • 注解开发管理第三方bean
    • Demo4
    • Demo5
  • 第三方bean依赖注入
  • 注解开发总结

注解开发定义bean
1.@Component代替Spring-application.xml核心配置文件中的标签中的类

Demo1

UserDaoImpl.java

import org.springframework.stereotype.Component;

@Component("userDao")
public class UserDaoImpl implements UserDao {
    private String username;
    public void setName(String name){
        this.username=name;
    }
    public void save() {
        System.out.println("user dao save ...");
    }
}

applicationContext.xml



    

APP4.java

public class APP4 {
    public static void main(String[] args) {
        ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml");
        UserDao userDao=(UserDao) ctx.getBean("userDao");
        userDao.save();
    }
}

run一下APP4.java

目录结构


2.@Controller、@Service、@Repository是@Component的衍生注解 
   @Contorller:用于表现层bean定义
   @Service:用于业务层bean定义
   @Repository:用于数据层bean定义
纯注解开发


Demo2

1.注释掉配置文件,这里通过更改文件名的后缀。更改为applicationContext.xml.bak。

2.在com.itheima.config下新建一个SpringConfig文件。


SpringConfig.java

package com.itheima.config;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;

@Configuration
@ComponentScan("com.itheima")
public class SpringConfig {
    
}

3.新建APP5进行测试

APP5.java

public class APP5 {
    public static void main(String[] args) {
        ApplicationContext ctx=new AnnotationConfigApplicationContext(SpringConfig.class);
        UserDao userDao=(UserDao) ctx.getBean("userDao");
        userDao.save();

    }
}

注解开发总结

bean的管理
@Scope("singleton"):表示创建的bean是单例模式的
@Scpoe("prototype"): 表示创建的bean不是单例的

@PostConstruct: 构造方法后
@PreDestroy: 销毁前
依赖注入

Demo3

BookDaoImpl.java

package com.itheima.dao.Impl;

import com.itheima.dao.BookDao;
import org.springframework.stereotype.Repository;

@Repository
public class BookDaoImpl implements BookDao {
    private int[] array;
    public void setArray(int[] array){
        this.array=array;
    }
    public void save(){
        System.out.println("book dao save .....");
    }
}

使用Autowired注解
BookServiceImpl.java

@Service
public class BookServiceImpl implements BookService {
    @Autowired
    private  BookDao bookDao;
//    private UserDao userDao;
    //提供对应的set方法
    public void setBookDao(BookDao bookDao){
        this.bookDao=bookDao;
    }
    public void save(){
        System.out.println("book service save .....");
        bookDao.save();

    }
}

SpringConfig.java

@Configuration
@ComponentScan("com.itheima")
public class SpringConfig {

}

APP5.java

public class APP5 {
    public static void main(String[] args) {
        ApplicationContext ctx=new AnnotationConfigApplicationContext(SpringConfig.class);
        BookService bookService=ctx.getBean(BookService.class);
        bookService.save();
    }
}


文件目录结构

注入引用类型

注入简单类型

加载properties文件

@Value("${配置文件的变量名}")

注解开发管理第三方bean

Demo4

1.添加druid的依赖


   com.alibaba
   druid
   1.1.16

2.配置SpringConfig.java文件

@Configuration
//@ComponentScan("com.itheima")
public class SpringConfig {
//    1.定义方法获得要管理的对象
//    2.添加@Bean,表示当前返回值是一个Bean
    @Bean("dataSource")
    public DataSource dataSource(){
        DruidDataSource ds=new DruidDataSource();
        ds.setDriverClassName("com.mysql.jdbc.Driver");
        ds.setUrl("jdbc:mysql://localhost:3306/spring_db");
        ds.setUsername("root");
        ds.setPassword("root");
        return ds;
    }
}

3.测试

public class APP6 {
    public static void main(String[] args) {
        AnnotationConfigApplicationContext ctx=new AnnotationConfigApplicationContext(SpringConfig.class);
        DataSource dataSource=ctx.getBean(DataSource.class);
        System.out.println(dataSource);
    }
}


文件目录结构

Demo5

demo5在demo4的基础上进一步解耦,将原先存在在SpringConfig中jdbc的相关内容分到jdbcConfig中。
1.定义jdbcConfig文件

public class jdbcConfig {
    @Bean
    public DataSource dataSource(){
        DruidDataSource ds=new DruidDataSource();
        ds.setDriverClassName("com.mysql.jdbc.Driver");
        ds.setUrl("jdbc:mysql://localhost:3306/spring_db");
        ds.setUsername("root");
        ds.setPassword("root");
        return ds;
    }
}

2.更改SpringConfig文件

@Configuration
@Import({jdbcConfig.class})
//@ComponentScan("com.itheima")
public class SpringConfig {
}

3.运行APP6.java查看结构

public class APP6 {
    public static void main(String[] args) {
        AnnotationConfigApplicationContext ctx=new AnnotationConfigApplicationContext(SpringConfig.class);
        DataSource dataSource=ctx.getBean(DataSource.class);
        System.out.println(dataSource);
    }
}


文件结构目录

第三方bean依赖注入


注解开发总结

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/995984.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号