注解开发

简介: • Spring3.0升级了纯注解开发模式,使用java类替代配置文件,开启了Spring快速开发赛道• java类替代Spring核心配置文件• 将者一段配置使用@Comfiguration替代配置类

注解开发

注解开发定义bean

  • 使用@Componnet定义bean

@Component("bookDao")

publicclassBookDaoImplimplementsBookDao {

   @Override

   publicvoidsave() {

       System.out.println("bookDao....");

   }

}

  • 核心配置文件中通过组件扫描加载bean

   <context:component-scanbase-package="com.wangxh.dao"/>

  • Spring提供@Component注解的三个衍生注解
  • @Controller:用于表现层bean定义
  • @Service:用于业务层bean定义
  • @Repository:用于数据层bean定义

纯注解开发

  • Spring3.0升级了纯注解开发模式,使用java类替代配置文件,开启了Spring快速开发赛道
  • java类替代Spring核心配置文件
  • 将者一段配置使用@Comfiguration替代配置类

<?xmlversion="1.0" encoding="UTF-8"?>

<beansxmlns="http://www.springframework.org/schema/beans"

      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

      xmlns:context="http://www.springframework.org/schema/context"

      xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttps://www.springframework.org/schema/context/spring-context.xsd">

</beans>

  • 将这一段使用@ComponentScan("com.wangxh")替换作用是用于设定扫描路径,但此注解只能添加一次,多个数据请用数组格式

<context:component-scanbase-package="com.wangxh.dao"/>

  • 读取Spring核心配置文件初始化容器对象切换为读取java配置类初始化容器对象

//加载配置文件初始化容器

ApplocationContextctx=neClassPathXmlApplicationContext("applicationContext.xml");

//加载配置类初始化容器

ApplicationContextctx=newAnnotationConfigApplicationContext(SpringConfig.class);

bean作用范围

使用@Scope定义bean作用范围

@Repository

@Scope("singleton")

publicclassBookDaoImplimplementsBookDao {

   使用@PostConstruct,@PreDestroy定义bean生命周期

   publicBookDaoImpl(){

       System.out.println("book dao constuctor...");

       @PostConstruct

       publicvoidinit(){

           System.out.Println("book init.");

       @PreDestroy

       publicvoiddestroy(){

           System.out.println("book destory");

           }

       }

   }

}

依赖注入

自动装配

@Service

publicclassBookServiceImplimplementsBookService {

   @Autowired

   privateBookDaobookDao;

   publicvoidsetBookDao(BookDaobookDao){

       this.bookDao=bookDao;

   }

   publicvoidsave(){

       System.out.println("book service save....");

       bookDao.save();

   }

}

  • 注意:自动装配基于反射设计创建按对象并非暴力反射对应属性为私有属性初始化数据,因此无需提供setter方法
  • 注意:自动装配建议使用无参构造器方法创建对象(默认),如果不提供对应构造方法,请提供唯一的构造方法
  • 如果你想指定加载哪一个bean使用@Qulifier注解开启指定名称装配bean

@Service

publicclassBookServiceImplimplementsBookService {

   @Autowired

   @Qualifier("bookDao")

   privateBookDaobookDao;

}

使用这个@Qualifier必须得有@Autowired

  • 使用@Value实现简单类型注入

@Repository("bookDao")

publicclassBookDaoImplimplementsBookDao {

   @Value("100")

   privateStringconnectionNum;

}

  • 加载外部properties文件
  • 使用@PropertySource注解加载properties文件

@Configuration

@ComponentScan("comm.wangxh")

@PropertySource("classpath:jdbc.properties")

publicclassSpringConfig{

   

}

第三方bean管理

  • 使用@bean配置第三方bean

@Configuration

publicclassSpringConfig {

   @Bean

   publicDataSourcedataSource(){

       

       DruidDataSourceds=newDruidDataSource();

       ds.setDriverClassName("com.mysql.jdbc.Driver");

       ds.setUrl("jdbc:mysql://localhost:3306/spring_db");

       ds.setUsername("root");

       ds.getPassword("root");

       returnds;

   }

}

  • 使用第三方管理bean以后,接下来使用方式一:导入式

publicclassJdbcConfig{

   @Bean

   publicDataSourcedataSource(){

       DruidDataSourceds=newDruidDataSource();

       //相关配置

       returnds;

   }

}

  • 使用@Import注解手动加入配置类到核心配置,此注解只能添加一次,多个数据请用数组格式

@Configuration

@Import(JdbcConfig.class)

publicclassSpringConfig{

   

}

  • 方式二:扫描式

@Configuration

publicclassJdbcConfig{

   @Bean

   publicDataSourcedataSource(){

       DruidDataSourceds=newDruidDataSource();

       //相关配置

       returnds;

   }

}

  • 使用@componnetScan注解扫描配置类所在的包,加载对应的配置类信息

@Configuration

@componnetScan({"com.wangxh.config","com.wangxh.service","com.wangxh.dao"})

publicclassSpringConfig{

   

}

第三方bean依赖注入

引用类型依赖注入

总结

相关文章
|
SQL XML Java
mybatis的注解开发之三种动态sql
mybatis的注解开发之三种动态sql
|
XML 前端开发 Java
1.5 Spring注解
在Spring框架中,尽管使用xml配置文件可以简单的装配Bean,但如果应用中有大量的Bean需要装配时,会导致xml配置文件过于庞大和繁重,影响开发效率,所以推荐使用注解(annotation)代替xml配置文件,可以简化配置,提高开发效率。
72 0
|
7月前
|
前端开发 Java 数据格式
Spring注解详解
Spring注解详解
61 0
|
7月前
|
SQL XML Java
Mybatis【使用注解开发】
Mybatis【使用注解开发】
|
XML SQL Java
mybatis注解方式
mybatis注解方式
|
XML 前端开发 Java
使用注解开发 | 学习笔记
快速学习使用注解开发。
|
XML SQL Java
Mybatis使用注解开发
Mybatis支持使用注解进行开发。它们映射的语句可以不用 XML 来配置,而可以使用 Java 注解来配置 使用注解来映射简单语句会使代码显得更加简洁,但对于稍微复杂一点的语句,Java 注解不仅力不从心,还会让本就复杂的 SQL 语句更加混乱不堪。 因此,如果你需要做一些很复杂的操作,最好用 XML 来映射语句。 选择何种方式来配置映射,以及是否应该要统一映射语句定义的形式,完全取决于你和你的团队。 换句话说,永远不要拘泥于一种方式,你可以很轻松地在基于注解和 XML 的语句映射方式间自由移植和切换。 例如,我们可以这样定义UserMapper接口类:
89 1
|
前端开发 Java Maven
SpringMVC使用注解开发
SpringMVC使用注解开发
|
Java 数据库连接 数据库