java 随笔

Spring的scope="prototype"属性 - 多例

  spring 默认scope 是单例模式(singleton),这样只会创建一个Action对象,每次访问都是同一个Action对象,数据不安全。  struts2 是要求每次次访问都对应不同的Action,scope="prototype"(多例) 可以保证 当有请求的时候 都创建一个Action对象。

request.getParameter() 和request.getAttribute() 区别:

  getParameter 是用来接受用post个get方法传递过来的参数的。  getAttribute 必须先setAttribute。

Bean

参考:https://www.cnblogs.com/xiaoxi/p/5850095.html

1<bean 2 id="beanId"13 name="beanName"24 class="beanClass"35 parent="parentBean"46 abstract="true | false"57 singleton="true | false"68 lazy-init="true | false | default"79 autowire="no | byName | byType | constructor | autodetect | default"810 dependency-check = "none | objects | simple | all | default"911 depends-on="dependsOnBean"1012 init-method="method"1113 destroy-method="method"1214 factory-method="method"1315 factory-bean="bean">1416</bean>

参考:https://www.cnblogs.com/zffenger/p/5808031.html

1<bean    class="bean的完全限定名" 2     name/id="bean在容器内的唯一名称" 3 scope="bean的生命周期" 4 lazy-init="是否为延迟加载" 5 init-method="bean的setter被调用之后调用该方法进行初始化" 6 destroy-method="容器在销毁该Bean后的调用的方法" 7 abstract="是否为抽象Bean,spring对于抽象bean不产生实例,主要用于继承" 8 parent="父Bean的名称,会继承父Bean的属性,与Java的Class无任何关系" 9 factory-method="工厂方法的名字" 10 factory-bean="工厂Bean的名字" 11 depends-on ="依赖Bean的名字,保证初始化顺序。” > 12 13 <!-- Constructor-arg给属性赋值写法一 --> 14 <constructor-arg type="int" value="10"/> 15 <!-- Constructor-arg给属性赋值写法二 --> 16 <constructor-arg name="age" value="10"/> 17 <!-- Constructor-arg给属性赋值写法三 --> 18 <constructor-arg index="0" value="10"/> 19 20 <!-- Properties给属性赋值写法一 --> 21 <property name="bean1"> 22 <ref bean="另外一个bean的id"/> 23 </property> 24 <!-- Properties给属性赋值写法二 --> 25 <property name="bean1" ref="另外一个bean的id"/> 26 <!-- Properties给属性赋值写法三 --> 27 <property name="age" value="10"/> 28</bean>

spring注解

借鉴:https://www.cnblogs.com/xiaoxi/p/5935009.html

1、@Autowired

    @Autowired顾名思义,就是自动装配,其作用是为了消除代码Java代码里面的getter/setter与bean属性中的property。当然,getter看个人需求,如果私有属性需要对外提供的话,应当予以保留。

@Autowired默认按类型匹配的方式,在容器查找匹配的Bean,当有且仅有一个匹配的Bean时,Spring将其注入@Autowired标注的变量中。

2、Qualifier(指定注入Bean的名称)

3、Resource 默认通过name属性去匹配bean

@Configuration把一个类作为一个IoC容器,它的某个方法头上如果注册了@Bean,就会作为这个Spring容器中的Bean。
@Scope注解 作用域
@Lazy(true) 表示延迟初始化
@Service用于标注业务层组件
@Controller用于标注控制层组件(如struts中的action)
@Repository用于标注数据访问组件,即DAO组件
@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注
@Scope用于指定scope作用域的(用在类上)
@PostConstruct用于指定初始化方法(用在方法上)
@PreDestory用于指定销毁方法(用在方法上)
@DependsOn:定义Bean初始化及销毁时的顺序
@Primary:自动装配时当出现多个Bean候选者时,被注解为@Primary的Bean将作为首选者,否则将抛出异常
@Autowired 默认按类型装配,如果我们想使用按名称装配,可以结合@Qualifier注解一起使用。如下:
@Autowired @Qualifier("personDaoBean") 存在多个实例配合使用
@Resource默认按名称装配,当找不到与名称匹配的bean才会按类型装配
@PostConstruct 初始化注解
@PreDestroy 摧毁注解 默认 单例  启动就加载
@Async异步方法调用

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )