我使用Spring 4.16和Java Annotations,我想做的事情如下:
@Configuration
@ComponentScan(basePackages = "com.example.business", includeFilters = @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, value = ServiceComponent.class))
@ComponentScan(basePackages = "com.example.business.framework")
public class ServicesBaseConfiguration {
}
Run Code Online (Sandbox Code Playgroud)
很可惜,它没有编译.但我希望你明白我的观点.我想要多个ComponentScans包含不同的包和过滤器.
我无法统一两个ComponentsScan,因为它不会从框架创建任何组件,而是那些使用ServiceComponent注释的组件,我是对的吗?
你知道我怎么解决这个问题?提前致谢
这可能是一个非常主观的问题,但我想知道一些更多的意见.我用Spring MVC构建了一个Rest API服务,并实现了DTO-Domain-Entity模式.我想知道你对在DTO中实现Builder模式有什么看法,比如说
public class UserResponseDTO
extends AbstractResponseDTO {
private String username;
private Boolean enabled;
public UserResponseDTO(String username, Boolean enabled) {
this.username = username;
this.enabled = enabled;
}
public String getUsername() {
return this.username;
}
public Boolean getEnabled() {
return this.enabled;
}
public static class Builder {
private String username;
private Boolean enabled;
public void setUsername(String username) {
this.username = username;
}
public void setEnabled(Boolean enabled) {
this.enabled = enabled;
}
public UserResponseDTO build(){
return new UserResponseDTO(username, enabled); …Run Code Online (Sandbox Code Playgroud) java design-patterns data-transfer-objects dto builder-pattern
我正在使用Spring boot Data JPA,现在,我有这个:
@Configuration
@PropertySource("classpath:persistence.properties")
@EnableTransactionManagement
public class PersistenceConfiguration {
@Autowired
private Environment env;
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory(EntityManagerFactoryBuilder builder) {
LocalContainerEntityManagerFactoryBean entityManager = new LocalContainerEntityManagerFactoryBean();
entityManager.setDataSource(this.dataSource());
entityManager.setPackagesToScan(new String[] {"com.example.movies.domain"});
JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
entityManager.setJpaVendorAdapter(vendorAdapter);
entityManager.setJpaProperties(this.properties());
return entityManager;
}
@Bean
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource dataSource() {
return DataSourceBuilder.create().build();
}
@Bean
public PlatformTransactionManager transactionManager(EntityManagerFactory emf) {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(emf);
return transactionManager;
}
@Bean
public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
return new PersistenceExceptionTranslationPostProcessor();
}
private Properties properties() {
Properties …Run Code Online (Sandbox Code Playgroud) 我有这个问题,我不知道如何解决.我使用Spring Boot创建了Restful API,我正在实现DTO-Domain-Entity模式,所以在这种特殊情况下我有这个控制器的方法
@RequestMapping(method = RequestMethod.POST)
@ResponseBody
public ResponseEntity<UserResponseDTO> createUser(@RequestBody UserRequestDTO data) {
UserDomain user = this.mapper.map(data, UserDomain.class);
UserDomain createdUser = this.service.createUser(user);
UserResponseDTO createdUserDTO = this.mapper.map(createdUser, UserResponseDTO.class);
return new ResponseEntity<UserResponseDTO>(createdUserDTO, HttpStatus.CREATED);
}
public class UserDomain {
private Long id;
private Date createdDate;
private Date updatedDate;
private String username;
private String password;
@Value("${default.user.enabled:true}") // I have default-values.properties being loaded in another configuration file
private Boolean enabled;
}
Run Code Online (Sandbox Code Playgroud)
我正在将UserRequestDTO对象转换为UserDomain.据我所知,UserRequestDTO是一个正在注入的bean.然后我将其转换为UserDomain,这里的问题是UserDomain对象不是组件,因此enabled属性不会采用默认值.
在我不想将UserDomain作为bean处理的情况下,我怎样才能使spring加载默认值(在这种情况下只启用属性)?
这不是相同的答案,因为我的目标是使用@Value注释完成它.
无论如何,康斯坦丁建议,做这样的事情会更好吗?
public class UserDomain {
@Autowired
private Environment environment;
private …Run Code Online (Sandbox Code Playgroud) 我有一个问题,这个问题一直在我脑海中流传.让我们假设我们在不同的层上使用后端和前端构建了我们的项目.所以,从前端,我们想得到一个客户,hal+json格式:
GET /customers/1 HTTP/1.1
Accept: application/hal+json
{
"name": "Alice",
"links": [ {
"rel": "self",
"href": "http://localhost:8080/customer/1"
} {
"rel": "transactions",
"href": "http://localhost:8080/customer/1/transactions"
}]
}
Run Code Online (Sandbox Code Playgroud)
然后,从前端我想获得所有客户交易.我的问题是:我该如何获得网址?它应该来自回应吗?或者我应该在内部构建它?
如果我们选择第一个选项,我认为在我们得到我们想要的那个之前,迭代所有链接可能并不优雅.此外,可能会出现我们没有我们想要的请求链接的情况.
如果我们使用第二个选项,如果我们实际上没有id,我不明白如何构建该URL.如果hateoas用链接替换id并且我还没有身体中的对象引用,我怎么能创建新的客户交易呢?
我认为也许服务应该同时支持 application/hal+json(面向用户)和application/json(面向客户端),但我不认为这是如何一般地完成它.
你怎么看?
我有这个问题:我正在使用操作栏导航抽屉,但我想添加一个按钮到菜单栏,像这些按钮:http: //screenshots.en.sftcdn.net/blog/en/ 2013/06 /通知-b.png
这是我的xml文件:
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<!-- The navigation drawer -->
<ListView
android:id="@+id/left_drawer"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="#111"
android:choiceMode="singleChoice"
android:divider="@android:color/transparent"
android:dividerHeight="0dp" />
</android.support.v4.widget.DrawerLayout>
Run Code Online (Sandbox Code Playgroud)
所以,我知道添加按钮是这样的:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:yourapp="http://schemas.android.com/apk/res-auto" >
<!-- Search, should appear as action button -->
<item android:id="@+id/action_search"
android:icon="@drawable/ic_action_search"
android:title="@string/action_search"
yourapp:showAsAction="ifRoom" />
</menu>
Run Code Online (Sandbox Code Playgroud)
但我仍然不知道如何适应这两个部分,任何人都可以帮助我吗?
我正在学习使用Spring 4 by Java注释,我无法找到如何将默认的init-method设置为属于特定配置的所有bean,而无需在所有clases中添加@PostContruct注释初始化方法,也不会使它们实现InitializeBean界面......我只是想做这样的事情:
<beans default-init-method="init">
<bean id="blogService" class="com.foo.DefaultBlogService">
</bean>
<bean id="anotherBean" class="com.foo.AnotherBean">
</bean>
</beans>
Run Code Online (Sandbox Code Playgroud)
所以,我想通过Java注释做到这一点,我想在bean的配置容器上设置默认bean配置.那可能吗?问候
编辑:我真正想要做的是告诉spring默认在我在BeansConfigurations类中创建的所有bean上运行"initialize"方法.这意味着,在默认情况下,放置一些注释或确定所有包含的bean将运行此初始化方法的内容.但正如我之前所说,我不想触及bean类,我的意思是,我不想为每个bean类的每个初始化方法添加@PostConstructor注释,我不希望每个bean都实现InitializeBean接口或
我正在尝试Spring Boot 1.3.1.RELEASE在我的服务器上部署我的服务。当我在本地运行它时没有任何问题,当我在服务器上运行它时出现此问题,我遇到了这个异常:
2015-12-22 10:45:36, 232 [-] [ main] INFO omcat.util.net.NioSelectorPool l180 - Using a shared selector for servlet write/read
2015-12-22 10:45:36, 261 [-] [ main] INFO TomcatEmbeddedServletContainer l159 - Tomcat started on port(s): 9290 (http)
2015-12-22 10:45:36, 266 [-] [ main] INFO e.webservice.ApplicationRunner l56 - Started ApplicationRunner in 100.827 seconds (JVM running for 128.605)
2015-12-22 10:45:36, 366 [-] [nio-9290-exec-1] ERROR oyote.http11.Http11NioProtocol l182 - Error reading request, ignored
java.lang.VerifyError: Bad type on operand stack
Exception Details:
Location:
org/apache/coyote/http11/AbstractHttp11Processor.asyncDispatch(Lorg/apache/tomcat/util/net/SocketStatus;)Lorg/apache/tomcat/util/net/AbstractEndpoint$Handler$SocketState; …Run Code Online (Sandbox Code Playgroud) 我正在尝试实现基于二叉树搜索的集合.所以我从一个根(指向节点的指针)开始构建这个集合,其中Node有一个值,右边和左边的子节点(两个指向Node的指针).所以这样我可以通过将root-> right指向创建的节点来设置根节点右侧的新节点,依此类推.看看定义:
template <class T>
class Set
{
public:
Set();
~Set();
void push(const T&);
bool belongs(const T&) const;
void remove(const T&);
const T& min() const;
const T& max() const;
unsigned int cardinal() const;
void show(std::ostream&) const;
friend ostream& operator<<(ostream& os, const Set<T> &c) {
c.show(os);
return os;
}
private:
struct Node
{
Node(const T& v);
T value;
Node* left;
Node* right;
};
Node* root_;
int cardinal_;
Node & fatherOfNode(const Node & root, const T …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Spring Boot 2.0.5.RELEASE将generator.yaml文件与类型的对象绑定:GeneratorConfig
generator.yaml:
entry:
name: "node-1"
expectedState: HEALTHY
Run Code Online (Sandbox Code Playgroud)
@Component
@PropertySource("classpath:generator.yaml")
@ConfigurationProperties
public class GeneratorConfig {
private Entry entry;
// getter and setter
}
Run Code Online (Sandbox Code Playgroud)
public class Entry {
private String name;
private NodeState expectedState;
// getters and setters
}
Run Code Online (Sandbox Code Playgroud)
我收到以下异常:
2018-12-11 13:11:53.885 INFO 3923 --- [ main] com.project.mmgenerator.MMGenerator : Starting MMGenerator on madmin’s-MacBook-Pro with PID 3923 (/Users/jscherman/IdeaProjects/sentinel/mock-metrics-generator/out/production/classes started by jscherman in /Users/jscherman/IdeaProjects/sentinel)
2018-12-11 13:11:53.889 DEBUG 3923 --- [ main] com.project.mmgenerator.MMGenerator : Running with Spring …Run Code Online (Sandbox Code Playgroud) java ×6
spring ×4
spring-boot ×3
annotations ×2
spring-4 ×2
android ×1
button ×1
c++ ×1
data-binding ×1
deployment ×1
drawer ×1
dto ×1
generics ×1
hateoas ×1
jpa ×1
json ×1
jvm ×1
spring-mvc ×1
templates ×1
tomcat ×1
web-services ×1
yaml ×1