如何在@property 初始值中给属性附初始值

spring boot 注入properties属性文件的值 @ConfigurationProperties
- 雨中漫步 - ITeye博客
博客分类:
在spring boot
1.建立一个普通的bean,利用@ConfigurationProperties:
@Configuration@ConfigurationProperties(locations = "classpath:properyname.properties", prefix = "datasource")public class PropertyBean {
private String driverClassN
private String userN
....................get、set方法
开启扫描此bean,spring application会生成一个PropertyBean
2.@ConfigurationProperties会绑定properties中的值,并且支持层级关系
@ConfigurationProperties(locations = "classpath:mail.properties",
ignoreUnknownFields = false, prefix = "mail")
public class MailProperties {
public static class Smtp {
private boolean starttlsE
// ... getters and setters
3.利用@PropertySource注解
@Configuration
@PropertySource("classpath:mail.properties")
public class MailConfiguration {
@Value("${mail.protocol}")
@Value("${mail.host}")
@Value("${mail.port}")
@Value("${mail.smtp.auth}")
@Value("${mail.smtp.starttls.enable}")
@Value("${mail.from}")
spring boot 会自动注入mail.properties中的值
mail.properties:
mail.host=localhost
mail.port=25
mail.smtp.auth=false
mail.smtp.starttls-enable=false
mail.from=me@localhost
mail.username=
mail.password=
@Configuration@PropertySource("classpath:datasource.properties")public class DataSourceConfig {
public void getValue() {
String name = env.getRequiredProperty("datasource.name");
datasource.properties:
datasource.username=root
浏览 12847
wenrisheng
浏览: 112271 次
来自: 广州
你这个spring注解大全,就这么几行,还真是全。。。。。
我擦!我都进来了,你给我看这个!
可以,最后就再写上自己的一点新的体会,这样才提高的快!
博主我能转载文章么?1,assign :
简单赋值,不更改索引计数
假设你用malloc分配了一块内存,并且把它的地址赋值给了指针a,后来你希望指针b也共享这块内存,于是你又把a赋值给(assign)了b。此时a 和b指向同一块内存,请问当a不再需要这块内存,能否直接释放它?答案是否定的,因为a并不知道b是否还在使用这块内存,如果a释放了,那么b在使用这块内存的时候会引起程序crash掉
应用场合:
对基础数据类型 (例如NSInteger,CGFloat)和C数据类型(int, float, double, char, 等) & & &
适用简单数据类型
2,retain:
与strong相对应,使用了引用计数,retain+1,release -1;当引用 计数为0时,dealloc会被调用,内存被释放
用于非共享内存时,每个指针有自己的内存空间
4,atomic//默认属性
A,当一个变量声明为atomic时,意味着在多线程中只能有一个线程能对它进行访问
B,当一个变量声明为atomic时,该变量为线程安全型,但是会影响访问速度,
C,当一个变量声明为atomic时,在非ARC编译环境下,需要设置访问锁来保证对该变量进行正确的get/set
&5,nonatomic
当一个变量声明为nonatomic时,意味着多个线程可以同时对其进行访问
当一个变量声明为nonatomic时,它是非线程安全型,访问速度快;
当一个变量声明为nonatomic时,当两个不同的线程对其访问时,容易失控。
总结:atomic和nonatomic用来决定编译器生成的getter和setter是否为原子操作。在多线程环境下,原子操作是必要的,否则有可能引起错误的结果。加了atomic,setter函数会变成下面这样:?
if (property != newValue) {
[property release];
property = [newValue retain];
6,strong://ARC中默认属性,等于非ARC中的retain
与retain相对应,
应用场景:
strong属性用于ARC中
@property (strong,nonatomic) ViewController *viewC
与assign 相对应,
应用场景:
用于IBOutlets,如,UIViewController的子类,即一般的控件。
@property (weak, nonatomic) IBOutlet UIButton *myB
strong与weak的区别举例:
我们把要用strong或者weak的对象比作一只风筝,风筝想挣脱线的束缚,自由飞翔去,如果此时有一根线,那么这只风筝就挣脱不了
strong属性的变量:
当我们把指向一只风筝的变量声明为strong时,此时,你就拥有控制这只风筝的线,假如此时有五个人同时控制这只风筝(即这只风筝对象有三个strong类型的变量指向它),那么只有一种情况,这只风筝才会挣脱掉线的束缚:这三个人都放掉手中的线,(release掉)
weak属性的变量:
当我们把指向一只风筝的变量声明为weak时,此时,就像站在旁边看风筝的观众们一样,当上面的三个人还握着手中的线时,他们只能看到风筝,并不能控制它,他们能做的只能是用手指指向风筝,并大喊,&看,那只风筝飞得真高!&,然而,当上面的三个人把手中的线都放掉时,此时,风筝飞走了,看不见了,不管有再多的观众,他们再也看不到风筝了,这个故事告诉我们一个道理:当strong类型的指针被释放掉之后,所有的指向同一个对象的weak指针都会被清零。
8,readonly
只有get方法,没有set方法
9,readwrite//默认属性
有get/set方法
10,unsafe_unretauined
用在ARC编译环境下,在此环境下,与assign相似。它只是告诉ARC如何正确地调用声明为unsafe_unretauined变量的retain和release
阅读(...) 评论()FORM中关于item属性设置&SET_ITEM_PROPERTY用法
尽量使用APP_ITEM_PROPERTY.SET_PROPERTY和APP_ITEM_PROPERTY.SET_VISUAL_ATTRIBUTE代替SET_ITEM_PROPERTY
set_item_property是form
builder带的。app_item_property.SET_PROPERTY是oracle公司为ebs开发的包,底层还是调用set_item_property.
APP_ITEM_PROPERTY.SET_PROPERTY 用法
app_item_property.set_property(itemid, ALTERABLE,PROPERTY_ON);
set_item_instance_property(itemid, CURRENT_RECORD,INSERT_ALLOWED,
PROPERTY_ON);
set_item_instance_property(itemid, CURRENT_RECORD,UPDATEABLE,
PROPERTY_ON);
set_item_property(itemid, INSERT_ALLOWED, PROPERTY_ON);
set_item_property(itemid, UPDATEABLE, PROPERTY_ON);
ALTERABLE_PLUS
app_item_property.set_property(itemid,
ALTERABLE_PLUS,PROPERTY_ON);
set_item_property(itemid, INSERT_ALLOWED, PROPERTY_ON);
set_item_property(itemid, UPDATEABLE, PROPERTY_ON);
如果item是隐藏的无效
app_item_property.set_property(itemid,
ENTERABLE,PROPERTY_ON);
set_item_instance_property(itemid, CURRENT_RECORD,INSERT_ALLOWED,
PROPERTY_ON);
set_item_instance_property(itemid, CURRENT_RECORD,UPDATEABLE,
PROPERTY_ON);
set_item_instance_property(itemid, CURRENT_RECORD,NAVIGABLE,
PROPERTY_ON);
set_item_property(itemid, INSERT_ALLOWED, PROPERTY_ON);
set_item_property(itemid, UPDATEABLE, PROPERTY_ON);
set_item_property(itemid, NAVIGABLE, PROPERTY_ON);
如果item是隐藏的无效
app_item_property.set_property(itemid,
ENABLED,PROPERTY_ON);
set_item_property(itemid, INSERT_ALLOWED, PROPERTY_ON);
set_item_property(itemid, UPDATEABLE, PROPERTY_ON);
set_item_property(itemid, NAVIGABLE, PROPERTY_ON);
如果是按钮 APP_ITEM_PROPERTY.SET_PROPERTY& 等价于:
set_item_property(itemid, ENABLED, PROPERTY_ON);
If the item is not a text item, list, or button, then the
APP_ITEM_PROPERTY.SET_PROPERTY call 等价于:
set_item_property(itemid, ENABLED, PROPERTY_ON);
set_item_property(itemid, INSERT_ALLOWED, PROPERTY_ON);
set_item_property(itemid, UPDATEABLE, PROPERTY_ON);
app_item_property.set_property(itemid,
DISPLAYED,PROPERTY_ON);
set_item_property(itemid, DISPLAYED, PROPERTY_ON);
如果项目不是一个显示项目设置:
set_item_property(itemid, ENABLED, PROPERTY_ON);
set_item_property(itemid, NAVIGABLE, PROPERTY_ON);
If the item is neither a display item nor a button then also
set_item_property(itemid, QUERYABLE, PROPERTY_ON);
set_item_property(itemid, INSERT_ALLOWED, PROPERTY_ON);
set_item_property(itemid, UPDATEABLE, PROPERTY_ON);
app_item_property.set_property(itemid,
REQUIRED,PROPERTY_ON);
set_item_property(itemid, REQUIRED, PROPERTY_ON);
如果item是隐藏的无效
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。property属性_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
property属性
阅读已结束,下载文档到电脑
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩5页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢}

我要回帖

更多关于 property ref属性 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信