注解开发bean

使用@Component定义bean

例:@Component("bookDao")
public Class BookDaoImpl implements BookDao {}

public class App {
public static void main(String[] args){
ApplicationContext ctx = new ClassPathXnlApplicationContext( “applicationContext-xm1");
BookDao bookDao = (BookDao) ctx. getBean( s: "bookDao");(与上方Component标签中的id为同一个id)
System.out.println(bookDao);
          }

}

java类代替Spring核心配置文件

<?xml version="1.e" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema//eans"
xmlns:xsi="http://www.w3.org/2001/XMLSchem:/-instance"
xsi:schemalocation="
http://www.springframework.org/schema/
beãns
http://www.springframework.org/schema/beans/spring-beans.xsd"><context:component-scan base-package-'
Com.itheima'/>(id为包名下的类名)
</beans>

以上代码可以使用以下方式代替

@Configuration
@ComponentScan("com.itheima")(括号中的id为上述代码中base-package中的id)
public class Springconfig {}

@Configuration注解用于设定当前类为配置类
@ComponentScan注解用于设定扫描路径;此注解只能添加一次,多个数据请用数组格式

加载配置类初始化容器

ApplicationContext ctx=new AnnotationConfigApplicationContext(SpringConfig.class)(括号中写入配置类名)

注解开发bean作用范围与生命周期管理

使用@Scope标签改变bean的作用范围

使用@PostConstruct标签执行bean初始化方法

使用@PreDestroy标签执行bean销毁方法

注解开发依赖注入

使用@Autowired注解开启自动装配模式(按类型)

使用@Qualifier注解开启指定名称装配bean

使用@Value注解开发基本数据类型

注意:@Qualifier标签必须配合标签使用,不可以独立出现

@Service
public class BookServiceImpl implements BookService {
@Autowired

@Qualifier("bookDao")
private BookDao bookDao;
public void setBookDao(BookDao bookDao)
this.bookDao = bookDao;
public void save() {
System.out.println("book service save ...");
bookDao.save();

       }

}
使用@Propertysource注解加载properties文件
@Configuration
@ComponentScan("com.itheima")
@PropertySource("classpath:jdbc.properties")
public class Springconfig {}

注解开发管理第三方bean

将独立的配置类加入核心配置
方式一:导入式
public class JdbcConfig {
@Bean
public DataSource datasource(){
DruidDataSource ds = new DruidDataSource();
|/相关配置
return ds;

        }

}

使用@Import注解手动加入配置类到核心配置,此注解只能添加一次,多个数据请用数组格式
@Configuration
@Import(JdbcConfig.class)
public class Springconfig {}

方式二:扫描式

@Configuration
public class JdbcConfig (
@Bean
public DataSource dataSource()(
DruidDatasource ds = new DruidDataSource();
1/相关配置
return ds;

          }

}

使用@ComponentScan注解扫描配置雷所在的包,加载对应的配置类文件

@Configuration
@ComponentScan(("com.itheina.config","con. itheima.service",-con.itheima.dao-})
public class Springconfig {}

使用@Bean配置第三方bean

@Configuration
public class Springconfig {
@Bean
public DataSource dataSource(){
DruidDataSource ds = new DruidDatasource();ds.setDriverClassName("com.mysql.jdbc.Driver");ds.setUrl("jdbc:mysq1://localhost:3306/spring_db");ds.setusername("root");
ds.setPassword("root");
return ds;

            }

}
注解开发实现为第三方bean注入资源

简单类型依赖注入

public class Jdbcconfig {
@Value("com.mysql.jdbc.Driver")
private String driver;
@Value("jdbc:mysql://localhost:3306/spring_db")
private String url;
@Value("root")
private String userName;
@Value("root")
private String password;
@Bean
public Datasource datasource()(
DruidDataSource ds = new DruidDatasource();
ds.setDriverClassName(driver);
ds.seturl(url);
ds.setUsername(userName);ds.setpassword(userName);

return ds;  

             }

}

引用类型依赖注入

@Bean
public DataSource dataSource(BookService bookService){
System.out.println(bookService);
DruidDataSource ds = new DruidDatasource();
1/属性设置
return ds;

        }

}

引用类型注入只需要为bean定义方法设置形参即可,容器会根据类型自动装配对象

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值