日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

spring新注解

發(fā)布時(shí)間:2024/10/5 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spring新注解 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

使用原始注解還不能全部替代xml配置文件,還需要使用注解替代的配置如下:
1.非自定義的Bean配置:< bean>
2.加載properties文件的配置:<context:property-placeholder>

3.組件掃描的位置:<context:component-scan >
4.引入其他文件:< import>


新注解
@Configuration:用于指定當(dāng)前類(lèi)是一個(gè)Spirng配置類(lèi),當(dāng)創(chuàng)建容器時(shí)會(huì)從該類(lèi)上進(jìn)行加載
@ComponentScan:用于指定spring在初始化容器時(shí)要掃描的包
作用和spring的xml配置文件中的
<context:component-scan base-package=“com.hao”/>一致
@Bean:使用在方法上,標(biāo)注該方法的返回值存儲(chǔ)到spring容器中
@PropertySource:用于加載.properties文件的位置
@import:用于導(dǎo)入其他配置類(lèi)




1.創(chuàng)建UserDao接口及其實(shí)現(xiàn)類(lèi)UserDaoImpl(接口代碼省略)

//<bean id="userDao" class="com.hao.dao.impl.UserDaoImpl"></bean> @Repository("userDao") //相當(dāng)于上面注釋掉的內(nèi)容 public class UserDaoImpl implements UserDao {@Overridepublic void save1() {System.out.println("save running...");} }

2.創(chuàng)建UserService接口及其UserServiceImpl實(shí)現(xiàn)類(lèi)(接口代碼省略)

@Service("userService") @Scope("singleton") public class UserServiceImpl implements UserService {@Value("${jdbc.driver}")private String driver;@Autowired//@Qualifier("userDao") //要注入的id值private UserDao userDao;@Overridepublic void sava() {System.out.println(driver);userDao.save1();} }

3.創(chuàng)建spring核心配置類(lèi)SpringConfiguration(名稱可以隨意)

package com.hao.config;import org.springframework.context.annotation.*;@Configuration //標(biāo)志類(lèi)是該Spring的核心配置類(lèi) @ComponentScan("com.hao") //掃描類(lèi),相當(dāng)于<context:component-scan base-package="com.hao"/> @Import({DataSourceConfiguration.class}) //引入的DataSourceConfiguration配置類(lèi) public class SpringConfiguration{}

4.DataSourceConfiguration配置類(lèi)

package com.hao.config;import com.mchange.v2.c3p0.ComboPooledDataSource; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.PropertySource;import javax.sql.DataSource; import java.beans.PropertyVetoException;@PropertySource("classpath:jdbc.properties")//加載.properties資源文件,相當(dāng)于<context:property-placeholder location="classpath:jdbc.properties"/> public class DataSourceConfiguration {@Value("${jdbc.driver}") //普通類(lèi)型的注入private String driver;@Value("${jdbc.url}")private String url;@Value("${jdbc.username}")private String username;@Value("${jdbc.password}")private String password;@Bean("dataSource") //spring會(huì)將當(dāng)前方法的返回值以指定名稱存儲(chǔ)到spring容器當(dāng)中-->相當(dāng)于xml配置當(dāng)中的Bean標(biāo)簽public DataSource getDataSource() throws PropertyVetoException {ComboPooledDataSource dataSource=new ComboPooledDataSource();dataSource.setDriverClass(driver);dataSource.setJdbcUrl(url);dataSource.setUser(username);dataSource.setPassword(password);return dataSource;} }

5.測(cè)試

public class UserController {public static void main(String[] args) {ApplicationContext context=new AnnotationConfigApplicationContext(SpringConfiguration.class);UserService service = (UserService) context.getBean("userService");service.sava();} }

使用注解獲取的是AnnotationConfigContext對(duì)象字節(jié)碼
結(jié)果:
com.mysql.cj.jdbc.Driver
save running…

總結(jié)

以上是生活随笔為你收集整理的spring新注解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。