beginng Spring

来源:互联网 发布:淘宝抢券软件 编辑:程序博客网 时间:2024/05/22 02:01

构造注入,一般情况下使用的是构造注入,构造注入的特点代码少,注入后bean的状态一致
setter注入的甜点是顺序注入,对顺序要求特别高的情况下才会使用setter注入~!
在注解中有两种方式!compent组件的方式,该方式包括@server,@Autoware,这种方式注解
拿到的是原始类
而另一种是使用Configruation的方式,这一种拿到的只是代理类,不是纯净的java类

spring的构造方法注入的时候一般和顺序没有关系,除非一次性注入两个实体类

构造注入不能有效的防止循环注入,如果说过setter注入可以有效的防止这种情况

spring容器启动分为两份部分,1,检查,2依赖注入

javabean在依赖注入的时候不能使用相同的名字,否则会出现重写的现象!一旦重写就会以第二个为
基准
spring在创建bean的时候没有顺序,如果想要按照特定的顺序可以在xml文件里面设置depend-on,如果是注解方式的话可以使用@dependon
自动装配:自动装配的时候没有顺序,在装配过程中有三种装配方式1,bytype 2,Byname,3,contructor。如果有名字相同或者类型相同的两个
则无法完成装配

@Qualifier(“XXX”) 中的 XX是 Bean 的名称,所以 @Autowired 和 @Qualifier 结合使用时,自动注入的策略就从 byType 转变成 byName 了。
@Value可以接受一个值,这个接受的值用来表示注入到该字段的值,注入的值可以使用SpEL表达式进行得到值,除了SpEL表达式可以吧占位符付给字段

如果不想通过applicationContex获得对象可以使用spring封装的WebApplicationContextUtiles的方法进行叨叨appliation然后在getBeans得需要访问的bean

外界的bean访问application容器的方法,可以继承applicationContextAware方法,

可以为一个bean声明多个名字,中间用逗号隔开
而且还能给每一个bean声明一个别名alias,在xml文件里面

创建bean还可以使用spring自带的FactoryBean方法,spring容器一旦运行就会创建该bean!

bean:的作用于是singleleton(单例),可以设置成prototype,每次访问都会创建bean,在spring2.5 之后又引入了其他的作用域,比如request,和session作用域,一般这两种作用域会在web应用中进行使用

延迟初始化:类的默认初始化时预先初始化,有些类不许要预先初始化,与预先初始化会浪费资源,所以可以选择演出初始化!
@Lazy(true)

bean声明周期方法,有init-method和destroy-method方法!对应的注解是@PostConstruct,和@PreDestroy方法!同事也可以继承InitializingBean,和DisposableBean方法!

类的声明周期:可以在类中定义init和destory方法,xml中可以配置init-method和destory-method
注解是@PostConstruct和@PreDestroy!!也可以继承initializingBean借口,和DisposableBean接口;

spring配置分为三类:java注解,spring注解,xml配置

Spring中三种访问数据库的方法;1使用Template方法,2使用SimpleJdbcinsert和SimpleJdbcCal,3使用mappingSqlQuery,SqlUpdate,StoreProcedure;

连接数据库的两种方式1使用Drivermnager2,使用DataSource,肯定第二种的方式比较好!

不要在生产环境中使用DriverManger,应为它没有连接池功能连接需要的花销太大!建议使用c3p0的apach服务器

创建爱你datasource可以使用两种方法。1BasicDataSource 2,ComboPooledDataSource

JdbcTemplate,和nameJdbcTemplate是都可以使用参数名进行查询

如果要支持数量可变的参数值查询可以使用in自语句编写查询,而且in仅支持100行以内的占位符查询

更新删除都在jdbcTemplate的更新方法中进行

批处理命令可以在update中进行操作,但是需要创建BatchPreparedStatememntSetter

BLOB,CLOB可以被称为大数对象用来存储图片,视频或者文档;

EntityManager的find和GetReference的区别find只是立即执行,getRegerence是返回一个代理在用空的时候才能执行!

@PersistenceUnit是把EntityMangerFactory注入到Dao bean里面!

ACID是说事物的原子性,一致性,隔离性,持久性。

本地事务和全局事务,本地事务意味着单一数据库,全局数据库意味着可以使用多个数据库!

本地事务意味着单一数据库,全局数据库意味着分部数据管理,可以使用多个数据库!一般使用JTA进行处理全局数据,JTA采用2PC策略!

Spring面相切面编程,其中关键的名词;结合点(Join-point),通知(Advice),切入点(point-cut),目标(target),编织(Weaving),编织是把方面和
目标对象结合起来的过程

execution( .* (parameters))

SpEL表达式的的上下文StandardEvaluationContext!

0 0
原创粉丝点击