博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
通过注解模式 装载Bean 和 Spring Boot一些注解
阅读量:5846 次
发布时间:2019-06-18

本文共 1669 字,大约阅读时间需要 5 分钟。

hot3.png

Mybatis 在配置Mybatis 的datasource 和sessionFactory

org.springframework.jdbc.datasource.DriverManagerDataSource

org.mybatis.spring.SqlSessionFactoryBean

之后要使用接口调用xml里的sql语句 还需申明 Mybatis的Mapper扫描包以及 sessionfactory

这样 就可以直接通过@Autowired 将对应的Mapper接口租入使用

附上几个注解的解释 和用法

@Repository注解:用于标注数据访问组件,即DAO组件@Service注解:用于标注业务层组件@Controller注解:用于标注控制层组件(如struts中的action)@Component注解:泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。

@Controller("Bean的名称")

定义控制层Bean,如Action

 

         

@Service("Bean的名称")

定义业务层Bean

 

@Repository   

@Repository("Bean的名称")

定义DAO层Bean

 

@Component  

定义Bean, 不好归类时使用.

 

--自动装配Bean (选用一种注解就可以)

@Autowired  (Srping提供的)

默认按类型匹配,自动装配(Srping提供的),可以写在成员属性上,或写在setter方法上

 

@Autowired(required=true)  

一定要找到匹配的Bean,否则抛异常。 默认值就是true 

 

@Autowired

@Qualifier("bean的名字") 

按名称装配Bean,与@Autowired组合使用,解决按类型匹配找到多个Bean问题。

 

@Resource   JSR-250提供的

默认按名称装配,当找不到名称匹配的bean再按类型装配.

可以写在成员属性上,或写在setter方法上

可以通过@Resource(name="beanName") 指定被注入的bean的名称, 要是未指定name属性, 默认使用成员属性的变量名,一般不用写name属性.

@Resource(name="beanName")指定了name属性,按名称注入但没找到bean, 就不会再按类型装配了.

 

@Inject   是JSR-330提供的

按类型装配,功能比@Autowired少,没有使用的必要。

 

--定义Bean的作用域和生命过程

@Scope("prototype")

值有:singleton,prototype,session,request,session,globalSession

 

@PostConstruct 

相当于init-method,使用在方法上,当Bean初始化时执行。

 

@PreDestroy 

相当于destory-method,使用在方法上,当Bean销毁时执行。

 

--声明式事务

@Transactional  

 

关于Spring Boot 通过注解注册托管Bean的时候 他默认扫描的是入口类Application.class的同包下的类

如果Application类所在的包为:io.github.gefangshuai.app,则只会扫描io.github.gefangshuai.app包及其所有子包,如果service或dao所在包不在io.github.gefangshuai.app及其子包下,则不会被扫描!

也就是不会注册成为Bean通过自动注入注解注入的时候就会出错

这个时候 我们需要用

@ComponentScan(basePackages={"com.zx"})

手动设置扫描的包 然后就会找到该包下面所有申明为Bean的类 进入IOC托管

转载于:https://my.oschina.net/u/2970507/blog/1794114

你可能感兴趣的文章
Python骚操作:动态定义函数
查看>>
Python基本数据类型之字典
查看>>
php引用(&)详解及注意事项
查看>>
OSChina 周一乱弹 —— 只要给网,这种生活我能过一辈子
查看>>
短信猫JAVA二次开发包SMSLib,org.smslib.TimeoutException: No response from device解决方案...
查看>>
sysbench 0.5 oltp测试笔记
查看>>
MySql安装root用户密码设置失败问题解决
查看>>
CloudStack 4.4学习总结之cloudstack-management安装
查看>>
小程序中的大道理之二
查看>>
【动弹有奖】——OSC登录并发送动弹分析(附python源码)
查看>>
protocol buffer安装及使用(非常详细)
查看>>
VTSS Error code
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
360提供的Php防注入代码
查看>>
修改phpMyAdmin使其能够管理多台远程MySQL服务器
查看>>
RabbitMQ SSL安全认证
查看>>
企业级Nginx服务基础到架构优化详解--25条
查看>>
CC***原理及防范方法
查看>>
HTTP GET请求URL中IP被异常替换的问题
查看>>