spring注解及简单实用
2021-03-22 07:27
标签:span cto spring注解 work except context 自己 导入 @Value 1.测试方法入口 2.注解配置 3.数据库链接配置 4.server层,接口代码就不列出了 5.dao层 spring注解及简单实用 标签:span cto spring注解 work except context 自己 导入 @Value 原文地址:https://www.cnblogs.com/zhuyapeng/p/13889545.html/*
* 原始注解:用途,自己编写的类注入容器使用
* @Component
* @Controller
* @Service
* @Repository
* 以上4个功能基本一样,类似加入
*
* @Autowired:自动注入,需要注入的属性或构造函数加上,spring会自动从容器去查找类型匹配的的,然后赋值
* @Qualifier: 结合@Autowired一起使用,可以配置单独名字
* @Resource:相当于@Autowired+@Resource
* @Value:注入普通属性
* @Scope:标记bean在作用范围
*
*
*
* 新注解:用途,不是自己编写的类需要注入到容器使用
* @Configuration:标记该类为spring配置类,从该类加载注解 类似applictionContxt.xml文件
* @ComponentScan:spring初始化时候需要扫描的包 类似:
* @Bean:用在方法上,标记将该方法的返回值加入spring容器
* @PropertySource:用于加载.properties 文件中的配置
* @Import:用于导入其他配置类
*
*
* */import cn.web.config.SpringCofiguration;
import cn.web.domain.User;
import cn.web.server.UserServer;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import java.util.List;
/*
* 利用SpringJUnit4ClassRunner注入spring测试
* 步骤:
* 1.引入junit和SpringJUnit
* 2.测试类加载类 @RunWith(SpringJUnit4ClassRunner.class)
* 3.加载配置 @ContextConfiguration("classpath:applictionContext.xml")
* 4.自动获取属性值
* 5.测试
* */
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = SpringCofiguration.class)
public class NewAnnoTest {
@Autowired
private UserServer server;
@Test
public void test(){
List
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
/*
* 原始注解:用途,自己编写的类注入容器使用
* @Component
* @Controller
* @Service
* @Repository
* 以上4个功能基本一样,类似加入
import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.PropertySource;
@PropertySource("classpath:jdbc.properties")
public class DataSourceConfiguration {
@Value("${jdbc.driver}")
private String driver;
@Value("${jdbc.url}")
private String url;
@Value("${jdbc.username}")
private String username;
@Value("${jdbc.password}")
private String password;
@Bean("dataSource") //Spring会将当前方法的返回值以指定名称存储到Spring容器中
public DruidDataSource getDataSource(){
DruidDataSource dataSource=new DruidDataSource();
dataSource.setDriverClassName(driver);
dataSource.setUrl(url);
dataSource.setUsername(username);
dataSource.setPassword(password);
return dataSource;
}
}
import cn.web.dao.UserDao;
import cn.web.domain.User;
import cn.web.server.UserServer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserServerImpl implements UserServer {
@Autowired
private UserDao dao;
public List
import cn.web.dao.UserDao;
import cn.web.domain.User;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidPooledConnection;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import sun.dc.pr.PRError;
import javax.sql.DataSource;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
@Repository
public class UserDaoImpl implements UserDao {
@Autowired
private DruidDataSource ds;
public List